kostenloser Webspace werbefrei: lima-city


MySQL und Kyrillisch

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    ferdinand24

    Kostenloser Webspace von ferdinand24

    ferdinand24 hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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...^^"

  4. 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
  5. Autor dieses Themas

    ferdinand24

    Kostenloser Webspace von ferdinand24

    ferdinand24 hat kostenlosen Webspace.



    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
  6. 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.

    &#1055;&#1088;&#1080;&#1074;&#1077;&#1090; &#1055;&#1077;&#1089;&#1077;&#1094;!
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!