 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
25.08.2005, 00:57
|
#1
|
|
TP-Veteran
Registriert seit: Feb 2002
|
PHP Applikation UTF-8-fähig machen
Hallo. Ich habe eine PHP Applikation die Benutzerdaten aus Formularen in einer mySQL Datenbank speichert. Diese Applikation möchte ich nun mit UTF-8 nutzen. Alle HTML Infos zu diesem Thema aus diesem Forum habe ich durch.
Gibt's Tutorials zum Thema PHP, mySQL, Formulare und UTF-8? Danke für jeden Hinweis.
__________________
class GetProfileCustomerEntityReceiverInformationReceiverAndProgrammingInforma...{
public function __construct(){ if(!$this) die(' '); } }
http://www.thedailywtf.com/
|
|
|
25.08.2005, 01:07
|
#2
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
Das ist doch kein Problem. Wenn Du ein UTF-8-Dokument hast, kannst Du ganz normal Deine Daten in die DB speichern.
Nur wenn Du andere Codierungen nutzt, musst Du das mit php-Funktionen nach UTF-8 wandeln.
|
|
|
25.08.2005, 08:56
|
#3
|
|
TP-Veteran
Registriert seit: Feb 2002
|
Danke für Deine Antwort. Ich verarbeitet die Strings oft weiter. D.h. mit Regex, String Funktionen usw. Funktioniert das mit UTF-8 auch? Oder muss ich alles auf mb_string (?) Funktionen umstellen?
__________________
class GetProfileCustomerEntityReceiverInformationReceiverAndProgrammingInforma...{
public function __construct(){ if(!$this) die(' '); } }
http://www.thedailywtf.com/
|
|
|
25.08.2005, 11:15
|
#4
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
Also vorweg - ich habe noch keine grosse Erfahrung mit den mb-Funktionen.
m.E. reicht die Kodierung des Dokumentes aus, die Forms müssen sicherheitshalber mit accept-charset="UTF-8" erweitert werden (für Browser, die aus der Reihe tanzen  )
Soweit ich weiss, sind die PHP-Funktionen mit UTF-8 noch buggy, daher würde ich erst mal völlig normal arbeiten. Die Experimente dürften es ans Licht bringen, ob die Strings korrekt verarbeitet werden.
Für importierte Texte gibts ja noch die Funktion utf8_encode.
Ansonsten ist in diversen Foren immer wieder zu beobachten, das sich viele die Zähne an utf-8 ausreissen
Was ist der genaue Grund für Deine Absicht - hast Du es etwa auch mit Japanisch / Chinesisch o.ä. zu tun ?
|
|
|
25.08.2005, 11:28
|
#5
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
Ich arbeite ganz simpel mit UTF-8, ohne etwas groß berücksichtigen oder ändern zu müssen. Wichtig ist halt nur, dass Du Deine Skripte / HTML-Dateien mit deinem Editor auch als UTF-8 speicherst und in denen auch via header() die Codierung mit angibst, z.B.:
header('Content-Type: text/html; charset=utf-8');
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
|
|
|
25.08.2005, 12:57
|
#6
|
|
TP-Veteran
Registriert seit: Jan 2002
|
Für Stringverarbeitung in UTF-8 musst Du die Multibyte-String-Funktionen, sprich mb_irgendwas() benutzen. Die einfachen String-Funktionen gehen davon aus, dass ein Textzeichen auch immer mit einem Byte in der Stringvariablen gespeichert ist. Bei UTF-8 belegen die allermeisten Zeichen allerdings mehrere Bytes, weshalb bei Operationen wie dem Ermitteln der String-Länge oder Extrahieren von Ausschnitten häufig Mist herauskommt.
Etwas präziser: UTF-8 ist im unteren Bereich, d.h. bei den westlichen Standardzeichen (Alphabet, Ziffern und vielleicht noch ein paar Sonderzeichen, ganz genau weiß ichs nicht) kompatibel zu ISO-8859-1. Wenn deine Strings nur einfache Buchstaben und Ziffern enthalten, kannst Du sie auch problemlos mit den einfachen Stringfunktionen handhaben. Sobald allerdings Sonderzeichen wie z.B. auch schon die deutschen Umlaute vorkommen, gibt's Fehler. Keine PHP-Fehlermeldungen, aber falsche, unerwünschte Ergebnisse.
Geändert von seb (25.08.2005 um 17:38 Uhr).
|
|
|
25.08.2005, 14:13
|
#7
|
|
TP-Veteran
Registriert seit: Feb 2002
|
Danke für eure Antworten.
@St@eff.en: Japanisch, Chinesisch, Koreanisch, Englisch, Deutsch
@seb: Wie verhält sich das mit den anderen Funktionen, wie preg_match usw? Hast Du da Erfahrungen?
__________________
class GetProfileCustomerEntityReceiverInformationReceiverAndProgrammingInforma...{
public function __construct(){ if(!$this) die(' '); } }
http://www.thedailywtf.com/
|
|
|
25.08.2005, 17:36
|
#8
|
|
TP-Veteran
Registriert seit: Jan 2002
|
Werf doch mal nen Blick auf die Liste der Multi-Byte-Funktionen (recht weit unten auf der Seite). Multibyte-Äquivalente gibt's für die "preg"-Funktionen anscheinend nicht, aber für "ereg". Vielleicht helfen die Dir ja auch?
|
|
|
25.08.2005, 17:38
|
#9
|
|
TP-Veteran
Registriert seit: Feb 2002
|
Danke für den Link.
__________________
class GetProfileCustomerEntityReceiverInformationReceiverAndProgrammingInforma...{
public function __construct(){ if(!$this) die(' '); } }
http://www.thedailywtf.com/
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 21:24 Uhr.
|
 |