mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 29.03.2024 09:59 Benutzername: Passwort: Auto-Login

Thema: Charset 8859-1 - Probleme mit Umlauten vom 06.09.2010


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Allgemeines - Nonprint -> Charset 8859-1 - Probleme mit Umlauten
Seite: 1, 2  Weiter
Autor Nachricht
sandra78
Threadersteller

Dabei seit: 05.09.2010
Ort: Essen
Alter: -
Geschlecht: Weiblich
Verfasst Mo 06.09.2010 18:38
Titel

Charset 8859-1 - Probleme mit Umlauten

Antworten mit Zitat Zum Seitenanfang

Hallo liebe Gemeinde,

ich arbeite mich gerade in PHP ein und habe noch keine großen Vorerfahrungen in der Sprache.

Zum Einarbeiten schreibe ich Mini-Scripts nach Tutorials.
Ich schreibe per "Smultron" und benutze "MAMP" zum Testen per localhost.

Zur Veranschaulichung ein paar Zeilen inklusive Header:

Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?

$eine_zahl = 78;
$ein_satz = 'Es gibt ' . $eine_zahl . ' Synonyme für Dummheit.';
echo $ein_satz;


?>
</body>
</html>


Ausgegeben wird in Firefox : "Es gibt 78 Synonyme für Dummheit."

Ich weiß nicht, woran das liegt. Ich dachte erst, es läge am Charset, aber dem ist anscheinend nicht so.
Ich kenne mich leider nicht wirklich aus. Kann es eine Einstellung in MAMP sein? Oder eine Firefox-Einstellung?

Lieben Dank vorab
  View user's profile Private Nachricht senden
Smooth-Graphics

Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 06.09.2010 18:54
Titel

Antworten mit Zitat Zum Seitenanfang

Verwende doch am besten UTF-8, das macht eigentlich mehr Sinn und führt zu weniger Problemen.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
sandra78
Threadersteller

Dabei seit: 05.09.2010
Ort: Essen
Alter: -
Geschlecht: Weiblich
Verfasst Mo 06.09.2010 19:02
Titel

Antworten mit Zitat Zum Seitenanfang

Vielen lieben Dank!

Code:
<meta http-equiv="content-type" content="application/xhtml+xml;charset=utf-8" />

hat funktioniert!
  View user's profile Private Nachricht senden
Pixelpole

Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht: Männlich
Verfasst Mo 06.09.2010 19:10
Titel

Antworten mit Zitat Zum Seitenanfang

Was ist denn das für ein beknackter Tipp?!

Du kannst in jeder brauchbaren IDE entweder beim speichern oder irgendwelchen Dateieigenschaften das encoding der Datei festlegen. Dies solltest du dann natürlich auf den selben Zeichensatz einstellen.

Generell solltest du grundsätzlich darauf achten in welchem Zeichensatz du deine Dateien speicherst. In den meistens IDEs kannst du in den allgemeinen Einstellungen diesen Zeichensatz einstellen.

Das Problem ist bei PHP einfach das ein PHP Projekt normalerweise ja viele Dateien inkludiert werden und wenn man nicht aufpasst hat man ruckzuck ein Projekt in dem man 2 verschiedene Zeichensätze rumschwirren hat und hat später viel Mühe Kodierungsprobleme zu umgehen und fängt dann an mit endlosen Tiraden von utf8_encode/utf8_decode gedöns an und das ist wirklich eine unschöne Geschichte.

Als vernünftiger Entwickler sollte man sich jederzeit klar sein in was für einem Zeichensatz man derzeit arbeitet und welchen Zeichensatz das Projekt nun auch nutzt. Gerade wenn man mit Fremdcode arbeitet, z.B. aus Wartungsgründen sollte man bevor man einfach mal die Datei verändert den Zeichensatz überprüfen und gegebenfalls auch seine Entwicklungsumgebung entsprechend auf den richtigen Zeichensatz einstellen.
  View user's profile Private Nachricht senden
heiko_rs

Dabei seit: 06.02.2008
Ort: Berlin
Alter: -
Geschlecht: Männlich
Verfasst Mo 06.09.2010 19:31
Titel

Antworten mit Zitat Zum Seitenanfang

Pixelpole hat geschrieben:
Was ist denn das für ein beknackter Tipp?!

Der Tipp, utf-8 zu verwenden, ist schon gut *zwinker*

Pixelpole hat geschrieben:
Generell solltest du grundsätzlich darauf achten in welchem Zeichensatz du deine Dateien speicherst.

Das ist ja eh klar - entscheidend ist, dass das Dokument dann auch richtig ausgeliefert wird. Im Falle von XHTML in seiner Standard-Kodierung utf-8 reicht ein meta-Element (für die lokale Speicherung), andere Kodierungen sollten dem Browser zusätzlich z.B. per .htaccess mitgeteilt werden - und benötigen bei XHTML strenggenommen auch die XML-Deklaration, die wiederum bekannt für ihre Nebenwirkung ist, den IE < 7 in den Quirksmode zu schicken.

@Sandra: Du weiß, dass 1.1 nicht als text/html ausgeliefert werden darf, sondern als nur application/xhtml+xml bzw. application/xml? Mit ebenfalls einer Nebenwirkung im IE < 7, der das Dokument dann zum Download/Speichern anbietet. Für text/html solltest Du 1.0 statt 1.1 verwenden (Content Negotiation ergibt imho nicht viel Sinn).
  View user's profile Private Nachricht senden
sandra78
Threadersteller

Dabei seit: 05.09.2010
Ort: Essen
Alter: -
Geschlecht: Weiblich
Verfasst Mo 06.09.2010 19:42
Titel

Antworten mit Zitat Zum Seitenanfang

Auch dir ein großes Danke!

Ich bin, wie gesagt, noch neu auf dem Gebiet.

Habe die Einstellung unter "Textcodierung" gefunden, was aber ohne den Tag leider nicht viel brachte.

Dass es später, beim Inkluden mehrerer Dateien zu Problemen führen kann, kann ich mir jetzt wirklich vorstellen. Ist jedenfalls ein Tipp, um den ich froh bin jetzt zu wissen *zwinker*

Nochmals lieben Dank für eure Mühe!
  View user's profile Private Nachricht senden
sandra78
Threadersteller

Dabei seit: 05.09.2010
Ort: Essen
Alter: -
Geschlecht: Weiblich
Verfasst Mo 06.09.2010 19:48
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
@Sandra: Du weiß, dass 1.1 nicht als text/html ausgeliefert werden darf, sondern als nur application/xhtml+xml bzw. application/xml? Mit ebenfalls einer Nebenwirkung im IE < 7, der das Dokument dann zum Download/Speichern anbietet. Für text/html solltest Du 1.0 statt 1.1 verwenden (Content Negotiation ergibt imho nicht viel Sinn).


Ich habe momentan dieses:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
<meta http-equiv="content-type" content="application/xhtml+xml;charset=utf-8" />


Nein, aber das habe ich nicht gewusst! Danke dir für den Tipp.

Also jetzt oben den Doctype-Tag in
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
ändern?

Danke auch fürs Erklären =)
  View user's profile Private Nachricht senden
heiko_rs

Dabei seit: 06.02.2008
Ort: Berlin
Alter: -
Geschlecht: Männlich
Verfasst Mo 06.09.2010 19:53
Titel

Antworten mit Zitat Zum Seitenanfang

Du darfst natürlich keine Dateien in anderer Kodierung includen *zwinker* Entscheide Dich für eine Kodierung (ich empfehle utf-8, denn damit geht wirklich alles, inkl. chines. Schriftzeichen etc *zwinker*), verwende diese für alle Dateien Deines Projektes und liefere Deine Dokumente/Dateien immer korrekt aus.

Und auch XHTML in utf-8 würde ich immer einen entsprechenden HTTP-Header per .htaccess oder PHP etc. mitgeben (auch wenn dies bei dieser Konstellation strenggenommen nicht nötig ist).

Edit: Ja, wenn Du als text/html ausliefern willst (was ich empfehle, denn application ist imho fast immer over-the-top), solltest Du XHTML 1.0 Strict verwenden.


Zuletzt bearbeitet von heiko_rs am Mo 06.09.2010 19:56, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
 
Ähnliche Themen Limbo [Mambo] Gästebuch | Probleme mit Umlauten
[ActionScript] probleme mit umlauten beim laden von txt
utf-8 vs iso-8859-1 ?
[PHP 5 / MySQL 4] ISO-8859-1 statt UTF-8
charset -> ich blicks nicht
[javascript] mootools ajaxrequest charset
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Allgemeines - Nonprint


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.