UTF-8/ISO-8859-1 - Encodingproblem

Apache, Lighttpd, nginx, Cherokee
allorange
Posts: 4
Joined: 2008-03-12 18:03

UTF-8/ISO-8859-1 - Encodingproblem

Post by allorange » 2008-03-12 18:33

Hallo zusammen,
nach einem Serverumzug werden teilweise Kundenwebseiten nicht mehr korrekt dargestellt (Umlaute).
alter Server:
Debian Sarge, Apache2, MySQL4.0, Php4
neuer Server:
Debian Etch, Apache2, MySQL5, Php5

Als lokaler Zeichensatz ist de_DE (ISO-8859-1) eingestellt. Damit werden UTF-8 kodierte Seiten nicht richtig angezeigt.
Füge ich nun in der httpd.conf

Code: Select all

<IfModule mod_mime.c>
...
AddDefaultCharset UTF-8
...

ein, funktionieren wieder die ISO-kodierten Seiten nicht richtig (mit AddDefaultCharset ISO-8859-1 passiert logischerweise genau das Gegenteil).

Wo ich auch suche, ich kann keinen Unterschied in der Konfiguration gegenüber dem alten System feststellen, wo alle Seiten korrekt dargestellt wurden. Da sich auf dem Server etliche datenbankbasierte Seiten verschiedenster Kunden befinden, ist es absolut unmöglich, alle Webseiten entsprechend anzupassen.

Da mich Google und die Forensuche leider kein Stück weitergebracht hat, hoffe ich nun, dass mir jemand von euch einen guten Tipp geben kann.

Grüße,
allorange

oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim

Re: UTF-8/ISO-8859-1 - Encodingproblem

Post by oxygen » 2008-03-12 18:36

Eine Zeile mit AddDefaultCharset gehört in keine Apache Konfiguration. Aber davon lassen sich die Debianer leider nicht überzeugen.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: UTF-8/ISO-8859-1 - Encodingproblem

Post by Joe User » 2008-03-12 18:44

Abgesehen von dem AddDefaultCharset-Problem (Debian begreift es seit Jahren nicht) wette ich auf fehlende Anpassungen der Datenbanken beim Upgrade auf MySQL-5.x (siehe MySQL-Dokumentation).
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

allorange
Posts: 4
Joined: 2008-03-12 18:03

Re: UTF-8/ISO-8859-1 - Encodingproblem

Post by allorange » 2008-03-12 18:45

war ja auch nur n Versuch, das Problem loszuwerden.
Die Zeile war weder in der alten, noch ist sie jetzt in der neuen Konfiguration.

suntzu
Posts: 669
Joined: 2002-12-20 19:47
Location: Mönchengladbach

Re: UTF-8/ISO-8859-1 - Encodingproblem

Post by suntzu » 2008-03-12 19:06

Dann entweder das DB-Problem oder es fehlen die Content-Type-Zeilen in den HTML-Dateien.

allorange
Posts: 4
Joined: 2008-03-12 18:03

Re: UTF-8/ISO-8859-1 - Encodingproblem

Post by allorange » 2008-03-13 09:36

Guten Morgen,

die Content-Type-Zeilen in den per Hand erstellten html-Dateien sehen folgendermaßen aus:

1. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
oder
2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Bei 1. erhalte ich ein ? für die Sonderzeichen.
Bei 2. erhalte ich die utf-Zeichen (A mit Tilde...).

Auf dem alten Server hat es problemlos funktioniert und wir finden keinen Ansatzpunkt woran es beim neuen Server hakt.

Grüße.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: UTF-8/ISO-8859-1 - Encodingproblem

Post by Joe User » 2008-03-13 09:44

Es sind garantiert nur Texte aus Datenbanken betroffen, was die fehlende Konvertierung beim Upgrade auf MySQL5 bestätigt.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

allorange
Posts: 4
Joined: 2008-03-12 18:03

Re: UTF-8/ISO-8859-1 - Encodingproblem

Post by allorange » 2008-03-13 09:50

Hab ich vorhin nicht erwähnt, der Serveradmin hat es geschafft, das die Seiten, die aus DB's generiert werden, wieder korrekt angezeigt werden.

Aber es gibt auch Kunden, die von Hand html-Dateien erstellen (ohne DB) und da funktioniert es nicht (wie oben beschrieben).

[Update] Zur Ansicht kann ich auch Links zur Verfügung stellen.[/Update]

Anonymous

Re: UTF-8/ISO-8859-1 - Encodingproblem

Post by Anonymous » 2008-03-15 18:09

Hallo Leute

Habe die gleiche Konfiguration und das gleiche Problem , ich hoffe das jemand hier eine Lösung hat , wenn ja ,bitte um Hilfe.
Ich habe schon stundenlang gegoogelt aber nichts brauchbares gefunden

Danke in Vorraus

Michael

suntzu
Posts: 669
Joined: 2002-12-20 19:47
Location: Mönchengladbach

Re: UTF-8/ISO-8859-1 - Encodingproblem

Post by suntzu » 2008-03-15 18:16

Welchen content type (ct) haben die Dateien auf dem Dateisystem, welcher ct wird in http übertragen (z.B. mit Firebug zu testen), was ist mit der DB? Es sollte alles UTF-8 oder zumindest einheitlich sein.

chr.raible
Posts: 19
Joined: 2005-11-07 21:31

Re: UTF-8/ISO-8859-1 - Encodingproblem

Post by chr.raible » 2008-03-15 23:13

Hi Leute,

ich hatte mit einer WEbsite genau das gleiche Problem! Hab den Fehler aber gefunden und behoben bekommen.

Und zwar war das Problem das die MySQL Datenbank die kollation utf8_general_ci hatte und nich "reiness" UTF-8 kenne da den Unterschied zwar net aber das war das Problem.

Sobald ich in die charset datei unter /etc/apache2/conf.d von UTF-8 in utf8_general_ci umgestellt hatte funktionierte alles einwandfrei!

Porbiert das mal! Danch apache restarten net vergessen ;) (So wars bei mir beim ersten versuch!!! :P )

Ich hoffe dass das euer Problem behebt!


Mfg
Chr.Raible

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: UTF-8/ISO-8859-1 - Encodingproblem

Post by Joe User » 2008-03-15 23:18

Chr.Raible wrote:Porbiert das mal!

Nein, nein und nochmal nein! Entweder die Datenbanken richtig ex- und importieren, oder gar nichts tun. Alles andere ist schlimmer als Pfusch...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

chr.raible
Posts: 19
Joined: 2005-11-07 21:31

Re: UTF-8/ISO-8859-1 - Encodingproblem

Post by chr.raible » 2008-03-15 23:37

Joe User wrote:
Chr.Raible wrote:Porbiert das mal!

Nein, nein und nochmal nein! Entweder die Datenbanken richtig ex- und importieren, oder gar nichts tun. Alles andere ist schlimmer als Pfusch...


Also ich hab weder meine Datenbank damals falsch ex noch importiert! Es wurde ein ganz normales CMS system installiert. Hab aber auch die Sicherung der alten Page getestet.

Das Backup wurde mit mysqldump, phpmyadmin und als Master - Master replikation (der zweite Master war der neue Server ) exportiert!

Importiert habe ich meine DB mit PHPmyadmin, über die konsole und wie gesagt über die replikation! Die Kollation wurde komplett auf UTF-8 umgestellt. Bei den Import vorgängen über PHPMyAdmin wurde utf-8 eingestellt. Aber nichts funktionierte! Sobal ich wieder was geschrieben hab, wurden die Umlaute nicht mehr richtig angezeigt!

Was hätte man da deiner Meinung nach anders machen sollen / können? Wenn du da eine Lösung hast dann wäre ich froh diese zu erfahren!

Und warum soll es Pfusch sein, wenn man in der charset datei vom Apache von UTF-8 auf utf8_general_ci umstellt? Man passt doch den Apache nur dem MySQL-Server an!

Mfg
Chr.Raible

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: UTF-8/ISO-8859-1 - Encodingproblem

Post by Joe User » 2008-03-15 23:59

http://dev.mysql.com/doc/refman/4.1/en/ ... m-4-0.html
http://dev.mysql.com/doc/refman/5.0/en/ ... m-4-1.html

In der httpd.conf setzt man grundsätzlich kein AddDefaultCharset, die Apache-Devs raten nicht grundlos dringlichst davon ab, auch wenn die Debian-Maintainer dies seit Jahren wissentlich ignorieren und es nicht einmal für nötig halten, ihre User darüber zu informieren. Zudem ist eine MySQL-Collation kein Charset und dort ohnehin fehl am Platz und wird Dir hoffentlich bald die damit verbundenen Probleme bereiten...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

suntzu
Posts: 669
Joined: 2002-12-20 19:47
Location: Mönchengladbach

Re: UTF-8/ISO-8859-1 - Encodingproblem

Post by suntzu » 2008-03-16 00:00

Lies dir mal die Doku zu den Collations und Charsets bei MySQL durch, dann schau mal, was du mit deiner Apache-Einstellung da geändert hast. Dann verstehst du das alles erstmal und DANN wirst auch du verstehen.

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: UTF-8/ISO-8859-1 - Encodingproblem

Post by Roger Wilco » 2008-03-16 00:33


mex
Posts: 3
Joined: 2008-03-24 21:54

Re: UTF-8/ISO-8859-1 - Encodingproblem

Post by mex » 2008-03-24 22:10

Moin,

neue server haben utf-8 als standard-encoding für alle files vorgegeben, wenn man aus kompatibilitätsgründen (ich musste ne php4/mysql4-anwndung auf einen neuen debian-server migrieren) auf iso angewiesen ist hilft es manchmal nur, alle dateien von utf-8 auf iso zu recoden, ist dirty aber manchmal hilf nix anderes.

mex




surftimer wrote:Hallo Leute

Habe die gleiche Konfiguration und das gleiche Problem , ich hoffe das jemand hier eine Lösung hat , wenn ja ,bitte um Hilfe.
Ich habe schon stundenlang gegoogelt aber nichts brauchbares gefunden

Danke in Vorraus

Michael

User avatar
lesswire
Posts: 33
Joined: 2005-04-28 03:45

Re: UTF-8/ISO-8859-1 - Encodingproblem

Post by lesswire » 2008-04-01 05:57

Joe User wrote:In der httpd.conf setzt man grundsätzlich kein AddDefaultCharset, die Apache-Devs raten nicht grundlos dringlichst davon ab...

Kann mir einer erklären, warum ein Developer von der Nutzung des von ihm programmierten Tags abrät?
Wofür ist dann "AddDefaultCharset" gedacht?

vg, LW.

freddy36
Posts: 273
Joined: 2008-03-20 17:31

Re: UTF-8/ISO-8859-1 - Encodingproblem

Post by freddy36 » 2008-04-01 07:55

AddDefaultCharset should only be used when all of the text resources to which it applies are known to be in that character encoding and it is too inconvenient to label their charset individually. One such example is to add the charset parameter to resources containing generated content, such as legacy CGI scripts, that might be vulnerable to cross-site scripting attacks due to user-provided data being included in the output. Note, however, that a better solution is to just fix (or delete) those scripts, since setting a default charset does not protect users that have enabled the "auto-detect character encoding" feature on their browser.

http://httpd.apache.org/docs/2.0/mod/core.html

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: UTF-8/ISO-8859-1 - Encodingproblem

Post by Joe User » 2008-04-01 12:08

LessWire wrote:Kann mir einer erklären, warum ein Developer von der Nutzung des von ihm programmierten Tags abrät?

Weil nicht alles was der Kunde will auch sinnvoll oder empfehlenswert ist.
LessWire wrote:Wofür ist dann "AddDefaultCharset" gedacht?

Kkompatibilität zu uralten WebApps und Clients...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.