| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

31-10-2010, 12:27
|
|
jo73
Registrierter Benutzer
|
|
Registriert seit: Dec 2006
Beiträge: 39
|
|
Server von iso-8859-1 auf utf-8 umgestellt
Hallo zusammen,
mein Provider hat den Server von iso-8859-1 auf utf-8 umgestellt. Zuvor war meine komplette Website auf iso-8859-1 ausgerichtet.
Nun werden die Umlaute aber z.B. wie folgt angezeigt: ...auf die jeweilige �berschrift �ffnet...
Meine Header habe ich derzeit noch wie folgt eingerichtet:
HTML-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<Html>
<head>
<title>Titeltext</title>
<meta http-equiv="content-type" content="text/html; iso-8859-1">
Ein einfaches umstellen von iso-8859-1 auf utf-8 im Quelltext hat keine Änderung gebracht.
Was muß ich nun machen, dass die Umlaute korrekt angezeigt werden? Kann ich z.B. auf iso-8859-1 bleiben, obwohl der Server auf utf-8 ist? Muß ich alle Umlaute nun z.B. mit ü maskieren? Welche Auswirkungen hat dies auf die Suchmaschinen?
Also kurz gesagt welche Strategie sollte ich nun mit der utf-8 Änderung einschlagen?
Schon vorab vielen Dank für die Rückinfo.
Gruß
Jo
|

31-10-2010, 12:49
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von jo73
Kann ich z.B. auf iso-8859-1 bleiben, obwohl der Server auf utf-8 ist?
|
Ja, natürlich - du musst ihm nur beibringen, deine Dateien mit einer entsprechenden Charset-Angabe im Content-Type-Header auszuliefern.
In deinen PHP-Scripten kannst du das per header machen, für reine HTML-Dateien musst du die Serverkonfiguration per .htaccess anpassen; die Direktiven AddDefaultCharset und AddCharset sollten dabei behilflich sein.
Den Zeitpunkt zu nutzen, um dein Projekt komplett auf UTF-8 umzustellen, wäre aber auch nicht verkehrt. Das würde allerdings ein bisschen Einarbeitung erfordern - denn deiner Fragestellung nach scheinst du was das angeht noch recht wenig Kenntnisse zu haben.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

31-10-2010, 17:36
|
|
jo73
Registrierter Benutzer
|
|
Registriert seit: Dec 2006
Beiträge: 39
|
|
Hallo,
Danke für die Antwort.
Derzeit ist die Ausgangslage, dass ich in meiner .htaccess
HTML-Code:
AddCharset utf-8 .php .html .xhtml
verwende und in meiner php-Datei die auch html enthält, das bereits u.g. set-up.
Bei den charset habe ich mir vor der Serverumstellung nicht soviele Gedanken gemacht und nicht die Website strategisch auf utf oder iso ausgelegt.
Ich möchte nun aber wieder eine funktionierende Darstellung generieren und zunächst einmal eine Lösung hinbekommen. Zum Teil war dies bei Elementen möglich indem ich einfach wieder über die index-Datei generell in iso umgestellt habe (zum Beispiel für das phpbb Forum).
Bei meinen php-Dateien hat dies leider aber nicht funktioniert.
Deshalb meine Frage hier im Forum um Support.
Wie müsste nun der Header meiner PHP/HTML Seite konkret aussehen und was muss ich in die .htaccess eintragen mit dem Hintergrund, dass ich wie gesagt die puren html-Seiten wieder über iso ohne Probleme darstellen kann?
Schon vorab vielen Dank für die Hilfe.
Gruß
Jo
|

31-10-2010, 18:31
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Na wenn du ISO verwenden willst, solltest du vielleicht nicht UTF-8 angeben, hm?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

31-10-2010, 19:17
|
|
jo73
Registrierter Benutzer
|
|
Registriert seit: Dec 2006
Beiträge: 39
|
|
...das ist richtig, aber genau auch Teil meiner Frage.
Bereits vor der Serverumstellung war diese Zeile in meiner .htaccess eingebaut.
Vielleicht aufgrund dessen, dass der Server ja vorher auf iso-8859-1 gelaufen ist, weiß ich aber nicht genau.
Nun die Frage, ob ich auch in der .htaccess auf iso umstellen soll und wenn ja wie lautet hier dann der Befehl? Ich würde dies aber jetzt nicht mehr logisch finden, da der Server nun ja auf utf-8 umsgestellt ist.
Könnte das Umstellen in der .htaccess darüber hinaus irgendetwas auf der Website negativ beieinflussen?
Ich möchte am Ende des Tages nur keinen "Mischmasch" zwischen iso und utf haben und nur ein sauberes Umlaute-Layout für Teile meiner Website generieren.
Zusammengefasst also:
Server: utf-8 -> ist fix
.htaccess: AddCharset utf-8 .php .html .xhtml -> ändern?
hmtl-File: iso-8859-1 setting -> funktioniert derzeit!
html/php-File: utf/iso -> welcher header-Befehl?
Wäre super, wenn hier jemand eine Struktur mit den entsprechenden Scripts vorschlagen könnte.
Schon vorab vielen Dank
Jo
|

31-10-2010, 19:44
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von jo73
Vielleicht aufgrund dessen, dass der Server ja vorher auf iso-8859-1 gelaufen ist, weiß ich aber nicht genau.
|
Das, und „der Server wurde auf UTF-8 umgestellt“, sind in dem Zusammenhang unsinnige Formulierungen.
Höchstens die Defaultwerte können umgestellt worden sein - das betrifft deine Scripte und Dateien aber nur indirekt.
Zitat:
Zusammengefasst also:
Server: utf-8 -> ist fix
.htaccess: AddCharset utf-8 .php .html .xhtml -> ändern?
hmtl-File: iso-8859-1 setting -> funktioniert derzeit!
|
Das kann dann aber schon nur Zufall sein - wenn deine Dateien in ISO-8859-1 kodiert abgespeichert sind, aber vom Server beim Ausliefern als UTF-8 ausgegeben werden, hat letzteres höhere Priorität.
Was tatsächlich der Fall ist, solltest du erst mal untersuchen, indem du dir die Response Header anschaust, bspw. mit Firebug.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

31-10-2010, 21:03
|
|
jo73
Registrierter Benutzer
|
|
Registriert seit: Dec 2006
Beiträge: 39
|
|
...die Antwort verstehe ich so, dass auf utf-8 eingestellte Server auf alle Fälle den charset (iso-8859-1) aus der html datei "overruled".
Welchen Einfluß hat dann aber
HTML-Code:
AddCharset utf-8 .php .html .xhtml
in der .htaccess?
Fakt ist aber, dass z.B. mein phpbb Forum nach der Umstellung durch meinen Provider die Layoutprobleme "�berschrift �ffnet" angzeigt hat und nachdem ich die config.php mit
HTML-Code:
ini_set('default_charset', 'iso-8859-1');
versehen hatte, dieses Problem behoben war. Trotz des Set-ups wie bereits genannt.
Also es funktioniert teilweise, ich kann mir aber natürlich gut vorstellen, dass irgendwo ein Knoten ist.
Wie muß ich nun bei den php/html Dateien vorgehen?
Gruß
Jo
PS: Auf welchen Befehl muß ich auf Firebug genau klicken, um den Response Header zu sehen?
|

01-11-2010, 09:45
|
|
eagle275
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 371
|
|
hm - wenn du mich fragst .. besuch deine Seite mit deinem bevorzugten Browser und lass dir die Seitencodierung anzeigen ... meines Wissens nach sind die Browser ziemlich genau darin, die gesendete Codierung zu erkennen - und zeigen dann korrekt an:
Unicode (UTF-8)
oder
Westlich (ISO-8859-1 ) oder -15 (fürs Euro-Zeichen)
selbst die älteren Codierungen CP1250 / CP1252 erkennen die recht zuverlässig (^^)
__________________
Wer LESEN kann, ist klar im Vorteil!
|

01-11-2010, 10:46
|
|
jo73
Registrierter Benutzer
|
|
Registriert seit: Dec 2006
Beiträge: 39
|
|
Hallo,
um die Situation noch einmal zusammenzufassen.
Der Provider hat von iso-8859-1 auf utf-8 umgestellt
Die sql-DB ist auf utf-8
Die .htaccess beinhaltet:
HTML-Code:
AddCharset utf-8 .php .html .xhtml
Die htm-Seiten beinhalten derzeit:
HTML-Code:
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
Die php/htm-Seiten beinhalten derzeit:
HTML-Code:
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
Derzeitige Darstellung:
htm-Seiten -> werden korrekt bzgl. Umlaute angezeigt
php/htm-Seiten -> Umlaute werden falsch angezeigt
Kontaktseite in php -> funktioniert bei Einträgen mit Umlauten nicht mehr
Frage:
Was muß ich konkret machen (html Tags), um wieder eine korrekte Darstellung und eine funktionierende Kontaktseite in php zu erhalten?
Nochmals vielen Dank für die Rückinfo.
Gruß
Jo
|

01-11-2010, 11:15
|
|
ezkimo
Registrierter Benutzer
|
|
Registriert seit: Apr 2005
Ort: Beckum / Westf.
Beiträge: 211
|
|
Die Voreinstellung der Direktive AddDefaultCharset ist nicht ohne Grund auf off. Siehe auch hier. Wenn die Direktive auf off steht, wird der verwendete Zeichensatz aus der HTML Meta Angabe content-type verwendet.
Also stell die Direktive AddDefaultCharset auf off und verwende in Deinen HTML Dokumenten immer eine Angabe zum verwendeten Zeichensatz. Dann sollte es laufen.
|

01-11-2010, 11:35
|
|
jo73
Registrierter Benutzer
|
|
Registriert seit: Dec 2006
Beiträge: 39
|
|
Hallo ezkimo,
vielen Dank für den konkreten Hinweis.
Das heißt dann konkret, dass ich AddCharset utf-8 .php .html .xhtml aus der .htaccess entferne, oder?
Was heißt das dann aber noch für die php-Seiten? Diese in den Meta Tags mit iso-8859-1 belassen?
Wie gesagt, derzeit funktionieren gerade diese php-Seiten nicht richtig und inbesondere werden keine Texte mit Umlauten im php-Kontaktformular übertragen.
Nochmals vielen Dank.
Gruß
Jo
|

01-11-2010, 11:59
|
|
ezkimo
Registrierter Benutzer
|
|
Registriert seit: Apr 2005
Ort: Beckum / Westf.
Beiträge: 211
|
|
In der htaccess solltest Du die AddDefaultCharset Direktive zur Sicheerheit mal auf off setzen und schauen, ob es einen Effekt hat. Überprüfe, ob der richtige Zeichensatz im HTML Kopf angegeben ist. Darüber hinaus muss der komplette Code natürlich auch im entsprechenden Zeichensatz geschrieben worden sein. Also überprüfe Deinen Editor, ob er die von Dir angewandten Zeichensätze unterstützt.
|

01-11-2010, 19:54
|
|
jo73
Registrierter Benutzer
|
|
Registriert seit: Dec 2006
Beiträge: 39
|
|
...o.k., dass heißt dann:
a)
HTML-Code:
AddCharset utf-8 .php .html .xhtml
AddDefaultCharset off
b) ich habe bei allen derzeitigen htm und htm/php Seiten den iso Zeichensatz in den Meta-Tags, wie bereits geschrieben
c) ich habe alle htm Seiten wahrscheinlich mit iso geschrieben, aber nie darauf geachtet, ob man auch etwas in utf-8 schreiben kann; was wäre hier anders, außer das man in den meta tags statt iso-8859-1 den Befehl utf-8 aufnimmt?
d) wie kann ich dies im Editor überprüfen? ich verwenden IE und den Firefox
e) gibt es noch einen Hinweis zur php Formular Problematik?
Ich hätte nie gedacht, dass das mit der Codierung so kompliziert ist?!? kann ich trotzdem irgendwie auf iso bleiben, wenn der Hoster auf utf-8 umgestellt hat und die DB ebenfalls auf utf-8 läuft?
Danke
Gruß
Jo
|

01-11-2010, 21:04
|
|
ezkimo
Registrierter Benutzer
|
|
Registriert seit: Apr 2005
Ort: Beckum / Westf.
Beiträge: 211
|
|
Zitat:
Zitat von jo73
...o.k., dass heißt dann:
a)
HTML-Code:
AddCharset utf-8 .php .html .xhtml
AddDefaultCharset off
|
Du möchtest doch, dass Deine Seiten im westeuropäischen Zeichensatz (ISO-8859-1) angezeigt werden, oder? Wieso notierst Du dann mit AddCharset den UTF-8 Zeichensatz? Scheint so, als würdest Du nicht wirklich wissen, was Du tust. Lass das mit dem UTF-8 doch einfach mal weg. Das haben andere aber auch schon gesagt.
Zitat:
Zitat von jo73
b) ich habe bei allen derzeitigen htm und htm/php Seiten den iso Zeichensatz in den Meta-Tags, wie bereits geschrieben
|
Gut, das ist Voraussetzung für ein sauberes Arbeiten mit AddDefaultCharset = off
Zitat:
Zitat von jo73
c) ich habe alle htm Seiten wahrscheinlich mit iso geschrieben, aber nie darauf geachtet, ob man auch etwas in utf-8 schreiben kann; was wäre hier anders, außer das man in den meta tags statt iso-8859-1 den Befehl utf-8 aufnimmt?
|
Im Normalfall siehst Du nicht, ob ein Zeichen ISO oder UTF codiert ist. Wenn Dein Editor die Eigenschaften einer Datei anzeigen kann, kannst Du eventuell sehen, ob die Datei ISO oder UTF codiert ist. Mal angenommen Du schreibst eine PHP Datei mit einem UTF-8 Zeichensatz, speicherst sie aber als ISO, wirst Du die Ausgabe auf dem Bildschirm wahrscheinlich mit einigen für Dich kryptisch wirkende Zeichen sehen.
Zitat:
Zitat von jo73
d) wie kann ich dies im Editor überprüfen? ich verwenden IE und den Firefox
|
Editor != Browser
Mit einem Editor bearbeitest Du Deine HTML und PHP Dateien. Mit dem Browser siehst Du lediglich das Resultat, welches z.B. eine PHP Datei an den Browser sendet. Ich weiß nicht welchen Editor Du benutzt. Daher kann ich Dir nicht sagen, ob Dein Editor überhaupt in der Lage ist mit verschiedenen Zeichensätzen zu arbeiten. Bitte schaue hier in die Hilfe oder Dokumentation Deines Editors.
Zitat:
Zitat von jo73
e) gibt es noch einen Hinweis zur php Formular Problematik?
|
Noe ... befolge die Angaben in diesem Thema. Damit solltest Du eigentlich ans Ziel kommen.
Zitat:
|
Ich hätte nie gedacht, dass das mit der Codierung so kompliziert ist?!? kann ich trotzdem irgendwie auf iso bleiben, wenn der Hoster auf utf-8 umgestellt hat und die DB ebenfalls auf utf-8 läuft?
|
Nein, das ist nicht schwierig. Man muss sich nur bewusst sein, mit welchem Zeichensatz man arbeitet. Dazu muss man eben wissen, wie man den Zeichensatz einstellt.
Folgende Links sollten Dir weiterhelfen:
1. MySQL :: MySQL 5.1 Referenzhandbuch :: 10.4 Verbindungszeichensatz und -sortierfolge
2. core - Apache HTTP Server
3. Language information and text direction
|

01-11-2010, 21:47
|
|
jo73
Registrierter Benutzer
|
|
Registriert seit: Dec 2006
Beiträge: 39
|
|
Hallo,
nun hatte ich AddCharset utf-8 .php .html .xhtml aus der .htaccess entfernt und AddDefaultCharset = off eingefügt.
Danach zeigte mir die Website einen Internen Serverfehler (500)!
Nachdem ich das AddDefaultCharset = off wieder entfernt hatte, war der 500er Fehler wieder weg, die Seite sieht aber wie zuvor aus, d.h. z.T. werden die Umlaute falsch angezeigt.
Je mehr sich man in diese Thematik iso/utf einarbeitet, umso komplexer wird diese für mich. Ich möchte vermeiden, dass man am Ende ein Mischmasch zwischen iso und utf generiert.
Also der Hoster hat den Server in utf-8 umgestellt, meinen Default Charset konnte ich bei meinem Hoster selbst in utf-8 umstellen, die .htaccess hat nun keinen Charset-Befehl mehr und alle htm bzw. htm/php Dateien sind in iso-8859-1 verfasst (da ja auch zuvor der Server auf iso-8859-1 war).
Any help? Ich verzweifle langsam noch.
Danke.
Gruß
Jo
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|