Russisch, Japanisch in Dateien ablegen (Kodierung)

ev0lst

Erfahrenes Mitglied
Hallo.

Ich würde gerne ein Sprachsystem programmieren, mit dem es möglich ist, das Programm in anderen Sprachen übersetzen zu können. Nur wie kann ich z.B. japanische Zeichen oder russische Zeichen in einer Datei ablegen, ohne dass diese zerstört werden.

Ich komme auf die Frage, weil ich das von der mysql-DB kenne, die kann beim export / import alle Umlaufe gekickt hat.

Oder brauche ich mir da keine Sorgen machen?

Danke
 
Hi.

Dazu kannst du Unicode verwenden - damit kann man (fast) alle möglichen Zeichen (hebräisch, kyrillisch, japanisch etc.) abbilden. Übliche Kodierungssysteme für Unicode ist z.B. UTF-8 (was ASCII kompatibel ist) oder UTF-16 (was in Java und von Windows ab 2003 intern verwendet wird).

Gruß
 
ja, mit UTF8 Arbeite ich mittlerweile auch in SQL-Bereich.
Muss ich also nur das charset mit UTF8 anpassen und alle Sonderzeichen bzw. Umlaute einfach so in der Datei ablegen? Oder sind noch andere Anpassungen nötig?

Danke
 
Also sprich:

utf8_encode <-- ausgabe
utf8_decode <-- eingabe

richtig?

Schonmal danke für deine guten Antworten :)
 
Tja, ganz so einfach ist es nicht. Die Funktionen utf8_{decode,encode} unterstützen nur ISO-8859-1 kodierte Strings. Wenn du allerdings japanischen Text hast, wird der z.B. im Zeichensatz ISO-2022-JP sein, Russich dann z.B. in ISO-8859-2.

Um von unterschiedlichsten Zeichensätzen nach UTF-8 zu konvertieren kannst du z.B. iconv verwenden:
PHP:
iconv('iso-8859-2', 'utf-8', $s)
Dazu mußt du natürlich wissen (oder feststellen - siehe mb_detect_encoding) welcher Zeichensatz im Originalstring verwendet wurde.

Wenn deine Eingaben von einer Seite kommen wo du den Zeichensatz kontrollieren kannst, dann brauchst du eigentlich nur UTF-8 als Kodierung zur Übermittelung der Formulardaten einstellen und du brauchst gar nicht konvertieren.

Gruß
 
Die Kodierung mit utf8_encode() und utf8_decode() ist nur dann nötig, wenn einer der beiden Zeichenkodierungen ISO 8859-1 ist. Benutzt du jedoch ausschließlich UTF-8 – und das empfehle ich dir – ist eine Konvertierung nicht notwendig.
 
Zurück