Chinesische Website auf Apache

Alles, was den Apache betrifft, kann hier besprochen werden.

Chinesische Website auf Apache

Postby apachebuddha » 19. August 2010 14:48

Hallo zusammen,

habe schon eine Weile gegoogelt und hier im Forum gesucht, doch leider nur ein unbeantwortetes Thema gefunden.
Ich habe auf meiner CentOs 5.4 LAMP - Installation eine Seite in deutsch/englisch/chinesisch laufen. Leider werden mir die chinesischen Zeichen im Stil von
2010年7月15日 能量总线
现在 MMS 也可作为服务器和客户端
dargestellt.
Kann mir einer von euch erklären, wo bzw. wie ich meinem System chinesisch lernen kann?
Danke für eure Antworten
Buddha
apachebuddha
 
Posts: 3
Joined: 19. August 2010 14:33

Re: Chinesische Website auf Apache

Postby Stepke-DSL » 19. August 2010 15:22

Hallo,

Du solltest mal nach Zeichensätzen suchen, z.B. UTF-8 und UTF-16...
Stepke-DSL
 
Posts: 313
Joined: 12. July 2007 16:08
Operating System: Win XP Pro SP3 + SuSe Linux

Re: Chinesische Website auf Apache

Postby apachebuddha » 20. August 2010 08:01

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...
Habe die Lösung mitlerweile selbst gefunden -> siehe rot hervorgehoben.

Frage:
WO? (sind die Änderungen in Linux, Apache oder der MySQL DB vorzunehmen)
Antwort (zumindest in meinem Fall):
In der httpd.conf des Apache.

Frage:
WIE? (welche Änderungen sind dazu notwendig)
Antwort (zumindest in meinem Fall):
den Eintrag
AddDefaultCharset iso-8859-1
durch
AddCharset ISO-8859-1 .iso8859-1 .latin1
ersetzen.

Anschließend den Apache neu starten, damit die Änderungen übernommen werden.

Auf so eine Antwort hofft jemand, der seine Frage in diesem Forum postet - vor allem, wenn er - wie ich - noch nicht ganz so vertraut mit dieser Geschichte ist. Unspezifische Antworten wie deine stiften nur weitere Verwirrung - dann doch lieber einmal weniger posten und warten, bis einer Zeit und Lust hat, eine zielweisende Antwort zu schreiben.

Wenn jemand Interesse daran hat, den Post zu vervollständigen, möge er doch bitte noch erklären, was die oben genannte Änderung bewirkt bzw. was der Unterschied zwischen den 2 Befehlen ist.

GreeZ
Buddha
apachebuddha
 
Posts: 3
Joined: 19. August 2010 14:33

Re: Chinesische Website auf Apache

Postby Altrea » 20. August 2010 08:38

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 Doc
AddDefaultCharset @ Apache Doc
AddCharset @ Galileo
AddDefaultCharset @ Galileo

Zeichensatz als <meta>-Tag
selfHTML

zu UTF-8 und Webseiten/Datenbanken
Sehr ausführlicher Forumbeitrag vom Macher von mysqldumper
kleine Serie von Gerd Riesselmann
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8294
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: Chinesische Website auf Apache

Postby apachebuddha » 20. August 2010 10:01

Altrea wrote:Auch wenn ich deinen Unmut etwas verstehen kann...

Ich muss mich entschuldigen, da der Post - jetzt nochmal gelesen - ziemlich verärgert rüberkommt, was eigentlich gar nicht in meinem Sinn war - er sollte als "konstruktive Kritik" dienen. Ich bitte darum, diesen auch so zu verstehen.

Altrea wrote: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.

Schade, dass das nur zufällig mein Problem löst.
Verstehe ich es richtig, dass also ohne gesetzten "DefaultCharset" und ohne Angabe zusätzlicher Zeichensätze, es beim Client bzw. dessen Browser liegt, den passenden Zeichensatz zu kennen und zu verwenden? Damit könnte ich leben, bis ich die Zeit finde, mich mit den o.g. Themen zu befassen.

Danke für die Hilfe
GreeZ
Buddha
apachebuddha
 
Posts: 3
Joined: 19. August 2010 14:33

Re: Chinesische Website auf Apache

Postby Stepke-DSL » 20. August 2010 10:45

apachebuddha wrote:
Altrea wrote:Verstehe ich es richtig, dass also ohne gesetzten "DefaultCharset" und ohne Angabe zusätzlicher Zeichensätze, es beim Client bzw. dessen Browser liegt, den passenden Zeichensatz zu kennen und zu verwenden?


Richtig.
Du solltest ohnehin bei jeder Seite das Charset angeben (im meta) und wenn du hier UTF-8 angibst (und das in der DB auch so gespeichert ist) sollte es klappen.

Zur Vorgehensweise:
Die HTML/PHP-Dateien um Zeichenformat UTF-8 speichern.
Datenbankverbindung mit
Code: Select all
mysql_query("SET NAMES 'utf8'");
entsprehend einstellen.
Das Charset der DB, sowie aller Tabellen, auf UTF-8 setzen.

Dann sollte es keine Probleme mehr geben.
Hoffe, dass dir das hilft.

MfG Stepke
Stepke-DSL
 
Posts: 313
Joined: 12. July 2007 16:08
Operating System: Win XP Pro SP3 + SuSe Linux


Return to Apache

Who is online

Users browsing this forum: No registered users and 5 guests