php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


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! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 3 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 31-10-2010, 12:27
jo73
 Registrierter Benutzer
Links : Onlinestatus : jo73 ist offline
Registriert seit: Dec 2006
Beiträge: 39
jo73 ist zur Zeit noch ein unbeschriebenes Blatt
Standard 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 &uuml; 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
Mit Zitat antworten
  #2 (permalink)  
Alt 31-10-2010, 12:49
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von jo73 Beitrag anzeigen
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.
Mit Zitat antworten
  #3 (permalink)  
Alt 31-10-2010, 17:36
jo73
 Registrierter Benutzer
Links : Onlinestatus : jo73 ist offline
Registriert seit: Dec 2006
Beiträge: 39
jo73 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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
Mit Zitat antworten
  #4 (permalink)  
Alt 31-10-2010, 18:31
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

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.
Mit Zitat antworten
  #5 (permalink)  
Alt 31-10-2010, 19:17
jo73
 Registrierter Benutzer
Links : Onlinestatus : jo73 ist offline
Registriert seit: Dec 2006
Beiträge: 39
jo73 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

...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
Mit Zitat antworten
  #6 (permalink)  
Alt 31-10-2010, 19:44
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von jo73 Beitrag anzeigen
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.
Mit Zitat antworten
  #7 (permalink)  
Alt 31-10-2010, 21:03
jo73
 Registrierter Benutzer
Links : Onlinestatus : jo73 ist offline
Registriert seit: Dec 2006
Beiträge: 39
jo73 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

...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?
Mit Zitat antworten
  #8 (permalink)  
Alt 01-11-2010, 09:45
eagle275
 Registrierter Benutzer
Links : Onlinestatus : eagle275 ist offline
Registriert seit: Jun 2010
Beiträge: 403
eagle275 befindet sich auf einem aufstrebenden Ast
Standard

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!
Mit Zitat antworten
  #9 (permalink)  
Alt 01-11-2010, 10:46
jo73
 Registrierter Benutzer
Links : Onlinestatus : jo73 ist offline
Registriert seit: Dec 2006
Beiträge: 39
jo73 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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
Mit Zitat antworten
  #10 (permalink)  
Alt 01-11-2010, 11:15
ezkimo
 Registrierter Benutzer
Links : Onlinestatus : ezkimo ist offline
Registriert seit: Apr 2005
Ort: Beckum / Westf.
Beiträge: 279
ezkimo befindet sich auf einem aufstrebenden Ast
ezkimo eine Nachricht über ICQ schicken
Standard

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.
__________________
MM Newmedia | MeinBlog
Mit Zitat antworten
  #11 (permalink)  
Alt 01-11-2010, 11:35
jo73
 Registrierter Benutzer
Links : Onlinestatus : jo73 ist offline
Registriert seit: Dec 2006
Beiträge: 39
jo73 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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
Mit Zitat antworten
  #12 (permalink)  
Alt 01-11-2010, 11:59
ezkimo
 Registrierter Benutzer
Links : Onlinestatus : ezkimo ist offline
Registriert seit: Apr 2005
Ort: Beckum / Westf.
Beiträge: 279
ezkimo befindet sich auf einem aufstrebenden Ast
ezkimo eine Nachricht über ICQ schicken
Standard

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.
__________________
MM Newmedia | MeinBlog
Mit Zitat antworten
  #13 (permalink)  
Alt 01-11-2010, 19:54
jo73
 Registrierter Benutzer
Links : Onlinestatus : jo73 ist offline
Registriert seit: Dec 2006
Beiträge: 39
jo73 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

...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
Mit Zitat antworten
  #14 (permalink)  
Alt 01-11-2010, 21:04
ezkimo
 Registrierter Benutzer
Links : Onlinestatus : ezkimo ist offline
Registriert seit: Apr 2005
Ort: Beckum / Westf.
Beiträge: 279
ezkimo befindet sich auf einem aufstrebenden Ast
ezkimo eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von jo73 Beitrag anzeigen
...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 Beitrag anzeigen
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 Beitrag anzeigen
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 Beitrag anzeigen
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 Beitrag anzeigen
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
__________________
MM Newmedia | MeinBlog
Mit Zitat antworten
  #15 (permalink)  
Alt 01-11-2010, 21:47
jo73
 Registrierter Benutzer
Links : Onlinestatus : jo73 ist offline
Registriert seit: Dec 2006
Beiträge: 39
jo73 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
String mit =?ISO-8859-1?Q? frankburian PHP Developer Forum 3 14-08-2008 12:53
iso-8859-1 &copy;&reg; mcmurphy HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 3 16-10-2006 17:14
iconv UTF-8 ISO-8859-7 ISO-8859-1 Orestes PHP Developer Forum 16 26-07-2006 11:12
iso-8859-2 to unicode 0413 PHP Developer Forum 1 29-06-2005 15:43
utf-8 / iso-8859-1 Daniel1975 PHP Developer Forum 0 29-01-2005 19:20

Themen-Optionen
Thema bewerten
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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:19 Uhr.