MySQL und Kyrillisch
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
automatische erkennung
beitrag
bit
deutsche umlaute
einzige mglichkeit
erfahrung
ernst
fest beitrag
fr
genannten kodierungen
glcklicherweise
gruss
kodierung
kyrillische buchstaben
lateinischen schriftzeichen
opus
sinnen
speicher
window
zeichensatz
-
Moin,
ich möchte gern Text mit kyrillischen und lateinischen Schriftzeichen in einer Datenbank speichern.
Der kyrillische Text bleibt aber nicht so, es werden irgendwelche anderen Zeichen (z.B. éæãêéëãæäôê¸ãé¸äôãææ)...
Was kann ich da tun?
gruß
ferdinand24 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Es könnte vielleicht dadran liegen, dass die Schiftart nicht unterstützt wird und es deshalb in anderen Schirftarten ausgelesen oder gespeichert wird. Da hilft nur einen neuen Zeichsensatz installeiren und diesen zu verwenden schätze ich.
Entschuldigt wnen ich mich irre...^^" -
Moin,
ich möchte gern Text mit kyrillischen und lateinischen Schriftzeichen in einer Datenbank speichern.
In welcher Kodierung liegt der Text vor? Kyrillisch gibt es (nach meiner Erfahrung) meist als ISO-8859-5, Windows-1251 oder UTF-8.
Der kyrillische Text bleibt aber nicht so, es werden irgendwelche anderen Zeichen (z.B. éæãêéëãæäôê¸ãé¸äôãææ)...
Ich weiß nicht, wie deine Datenbank (MySQL?) die Texte intern speichert, und auch nicht, ob man das beeinflussen kann.
Was kann ich da tun?
Wenns UTF-8 ist, dass dem anzeigenden Programm mitteilen. Falls es sich um einen Browser handelt, gibts dafür HTTP-Header und HTML-Metatags. Probeweise kannst du ja mal im Browser UTF-8 oder einen der anderen beiden einstellen. Mein Opera bietet sogar einen Menüpunkt "automatische Erkennung" für Kyrillisch an. Ob das auch funktioniert, hab ich aber noch nicht probiert.
P.S.: Ich hab mal diese Seite (mit deinen Beispielzeichen) im Opera mit den drei genannten Kodierungen getestet. UTF-8 ist es nicht. Und bei den anderen beiden sind zwar kyrillische Buchstaben erschienen, aber keine Wörter, die mir bekannt sind (was nicht unbedingt was heißen muss).
Beitrag geaendert: 2.4.2007 0:01:31 von alopex -
Moin,
ich möchte gern Text mit kyrillischen und lateinischen Schriftzeichen in einer Datenbank speichern.
In welcher Kodierung liegt der Text vor? Kyrillisch gibt es (nach meiner Erfahrung) meist als ISO-8859-5, Windows-1251 oder UTF-8.
Der kyrillische Text bleibt aber nicht so, es werden irgendwelche anderen Zeichen (z.B. éæãêéëãæäôê¸ãé¸äôãææ)...
Ich weiß nicht, wie deine Datenbank (MySQL?) die Texte intern speichert, und auch nicht, ob man das beeinflussen kann.
Was kann ich da tun?
Wenns UTF-8 ist, dass dem anzeigenden Programm mitteilen. Falls es sich um einen Browser handelt, gibts dafür HTTP-Header und HTML-Metatags. Probeweise kannst du ja mal im Browser UTF-8 oder einen der anderen beiden einstellen. Mein Opera bietet sogar einen Menüpunkt "automatische Erkennung" für Kyrillisch an. Ob das auch funktioniert, hab ich aber noch nicht probiert.
P.S.: Ich hab mal diese Seite (mit deinen Beispielzeichen) im Opera mit den drei genannten Kodierungen getestet. UTF-8 ist es nicht. Und bei den anderen beiden sind zwar kyrillische Buchstaben erschienen, aber keine Wörter, die mir bekannt sind (was nicht unbedingt was heißen muss).
Beitrag geaendert: 2.4.2007 0:01:31 von alopex
Hallo alopex,
ich ahbe auch mal den Zeichensatz im Browser umgestellt. Bei Windows-1251 ist der Teil mit den Buchstaben auch Kyrillisch (dass es keinen Sinn ergibt ist richtig, ich habe nur auf der Tastatur rumgehauen), aber dann waren auch Umlaute und Sonderzeichen Kyrilisch... das st jedoch nciht im SInne des Erfinders, da in dem Text ja auch Ös, Äs und Üs (und ßs) vorkommen...
gruß
ferdinand24
//EDIT by ferdinand24
Mal ganz im Ernst, es ist lustig ;)
Ich habe das Script mal online gestestet (nicht wie sont lokal) und auf einmal wird der Unicode ausgegeben...
Dann habe ich noch fix alle htmlentities()-Anweisungen weggemacht und jetzt gehts, genial ;)
Aber dennoch: Wie legt man mit PHP den Zeichensatz fest?
Beitrag geaendert: 2.4.2007 20:01:32 von ferdinand24 -
In PHP selber gar nicht. Für PHP (zumindest bis Version 5.2) sind Zeichen immer 8-Bit-Kodierungen (also Oktette oder im Volksmund auch Bytes). Glücklicherweise ist UTF-8 so gebaut, dass man ihn eben mit 8-Bit-Kodierung darstellen kann.
Um dem Browser mitzuteilen, was er darstellen soll, gibts den HTTP-Header "Content-Type". Bsp.:
header('Content-Type: text/html; charset=UTF-8');
Das funktioniert immer, so lange der Browser die Seite aus dem Netz lädt. Fürs Offline-Lesen macht sich das Meta-Tag oft gut:
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
UTF-8 ist übrigens sowieso die einzige Möglichkeit, wenn du deutsche Umlaute und kyrillische Zeichen kombinieren willst.
Привет Песец! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage