apachebuddha wrote:Danke - dass es was mit Zeichensätzen zu tun hat, war auch für mich nicht schwer zu erraten. Meine Frage war WO bzw WIE...
[...]
Auf so eine Antwort hofft jemand, der seine Frage in diesem Forum postet
Auch wenn ich deinen Unmut etwas verstehen kann, so war es relativ schwer auf deine Frage eine, für dich ausreichend ausführliche, Antwort zu geben. Die korrekte Antwort auf die Frage, wie man deinem Rechner chinesisch beibringen kann, wäre gewesen, dass es da nichts zu tun gibt. Zeichenkodierungen sind auchnur 0en und 1en. Die einzige Unterscheidung zwischen den unterschiedlichsten Zeichenkodierungen ist die Byte-Länge in der ein Zeichen gespeichert wird, und welcher Wert welches Zeichen ist. Prinzipiell kann dein Rechner also alle Sprachen bereits, man muss ihm nur sagen, welches Wörterbuch er zum deuten der Zeichen verwenden muss.
Nun aber zu deinem Lösungsansatz:
apachebuddha wrote:AddDefaultCharset iso-8859-1
durch
AddCharset ISO-8859-1 .iso8859-1 .latin1
ersetzen.
Dies löst nur scheinbar dein Problem, denn was du damit eigentlich nur tust ist:
- Dem Apache seinen Standard-Zeichensatz wegzunehmen (was andere missgedeutete Webseiten zur Folge haben kann)
- Dem Apache eine zusätzliche Zeichensatz-Erweiterung zuzuweisen, die erstmal nur angehangen wird (ob sie letztendlich verwendet wird ist eine andere Frage. In deinem chinesisxchen Fall wird sie es nicht, denn iso-8859-1 ist der auch bei uns gebräuchliche Zeichensatz und dieser enthält keine chinesischen Schriftzeichen)
Dass dein Lösungsansatz dennoch funktioniert, ist reine Glückssache, denn dein Browser versucht nun (wo der Apache keine Zeichensatzempfehlung mehr abgibt) den Zeichensatz zu erraten! Zufälligerweise rät er richtig, das kann aber schon bei einem anderen Browser, einer anderen Seite, einer anderen Länderkennung, etc. anders sein.
Was du tun musst ist erstmal deine Änderungen rückgängig machen. Danach musst du dich intensiv mit Zeichensätzen in Verbindung mit Webseiten und u.U. in Verbindung mit Datenbankkommunikation auseinanderzusetzen. Stichworte dazu sind <meta>-Tags, MySQL SET NAMES, HTTP Request Headers. Außerdem musst du herausfinden, in welcher Zeichenkodierung dein HTML-/PHP-Editor die Seiten speichert. All diese Zeichensatz-Angaben sollten sich nicht widersprechen! In deinem Fall (ein Mix aus chinesisch und westeuropäischen Zeichensätzen) spricht alles für den Einsatz von utf-8.
Aber wie gesagt, DU musst dich INTENSIV damit beschäftigen. Das ist kein Wissen, das man mal eben so über ein Forumbeitrag vermitteln kann. Das ist ein hochkomplexes und kompliziertes Thema.
Ressourcen zu den Apache Direktiven:
AddCharset @ Apache DocAddDefaultCharset @ Apache DocAddCharset @ GalileoAddDefaultCharset @ GalileoZeichensatz als <meta>-Tag
selfHTMLzu UTF-8 und Webseiten/Datenbanken
Sehr ausführlicher Forumbeitrag vom Macher von mysqldumperkleine Serie von Gerd Riesselmann