2009-03-21 11 views
0

Was ist Ihre Meinung zur Codierung Akzent und Sonderzeichen in XHTML und XML.UTF8, ISO-8859-x oder 7-Bit-ASCII und Entitäten

  • Konvertieren Sie jedes Nicht-US-ASCII-Zeichen in eine benannte Entität?
  • Sie verwenden ISO-8859-x oder Win-125x und kodieren für Entitäten etwas anderes?
  • Oder schreiben Sie direkt alles in UTF-8, ohne sich um Entitäten zu kümmern?

Bitte erläutern Sie, welche und warum.

+0

ich liebe, wie das klingt wie eine Prüfungsfrage ... NICHT – hop

Antwort

7

Ich kann Ihnen nicht genau sagen, warum das passiert, aber in meiner 5-jährigen Erfahrung mit UTF-8 für jede Webseite (ich verwende hauptsächlich kyrillische und baltische Symbole), habe ich noch kein falsch angezeigtes Zeichen gesehen .

3

Ärgern Sie sich nicht mit benannten Entitäten. Sie eignen sich gut, wenn Sie HTML-Dateien manuell bearbeiten und die Zeichen lesen möchten und keinen UTF-8-Editor haben. Aber ansonsten ist UTF-8 der richtige Weg.

0

Aus amerikanischer Sicht: Wo fast der gesamte Text US-ASCII ist, mit ein paar Symbolen und akzentuierten Zeichen, empfehle ich dringend numerische oder benannte Entitäten.

Der Grund ist einfach: Es ist eine Sache weniger zu kümmern. Sie müssen nicht sicherstellen, dass Ihr Webserver so eingestellt ist, dass er die gleiche Kodierung wie Ihr Inhalt ankündigt. Denn früher oder später bekommen Sie jemanden, der Seiten unter Windows mit Cp1252-Kodierung bearbeitet, und jemand, der unter Linux mit ISO-8859 arbeitet, und obwohl die beiden in der Nähe sind, sind sie nicht gleich. Und wenn der Webserver als UTF-8 konfiguriert ist, sind beide gebrochen.

Das sagte, ich gab Sergej +1, weil Sie keine Masse von Entitäten wollen, wenn Sie mit Text arbeiten, der nicht hauptsächlich ASCII ist.

+0

+1 da ist etwas dran. Ich habe Linux mit allem UTF-8 standardmäßig, aber Webdesigner kodieren alles ISO-8859-1. Aber dann kommt 'Autodetect Encoding' Option in Editoren praktisch :-) – vartec

+0

Die einzige Möglichkeit, dies zu halten ist, wenn Sie statische Webseiten erstellen und Sie direkten Kontakt mit allen Beteiligten haben.Selbst dann müssen Sie immer noch mit Leuten umgehen, die nicht zu Entitäten konvertieren, was genauso zu erklären ist, wie Sie Dateien in UTF8 speichern können. Für reguläre Webanwendungen ist diese Einstellung gefährlich, da Sie möglicherweise einen Link in der Kette erhalten, der nicht bewusst ist, dass die Benutzerdaten irreparabel beschädigt werden. Unabhängig davon, ob Sie sich für die Verwendung von Entitäten entscheiden, müssen Sie Ihre Kodierungen korrigieren oder sich in einer Welt voller Verletzungen befinden. – gtd

+0

Ein Teil der Entwicklung eines Entwicklungsteams ist die Kommunikation. In der Regel ist es jedoch einfacher, innerhalb des Teams zu kommunizieren als ohne. In vielen Unternehmen wird die Bereitstellung getrennt von der Entwicklung verwaltet. Was das Verwalten von Codierungen über den Web-App-Stack betrifft: Wenn Ihre Plattform dies nicht für Sie tut, befinden Sie sich in einer Welt der Verletzungsperiode. Aber hey, danke für den späten Downvote. – kdgregory

2

Ich schreibe immer direkt in utf8. Das einzige Problem, das ich in diesem Zeitraum hatte, war der Server, der die ISO-Codierung für Header erzwang.

6

UTF-8.

Es wurde genau mit dem Zweck der Lösung der Probleme kdgregory erwähnt erwähnt, die mit UTF-16 auftreten und es tut es fantastisch. So ziemlich jeder Editor (einschließlich Notepad) unterstützt UTF-8 und ist auch eine Standardkodierung für XML.

1

Verwenden Sie immer UTF-8 für Sie vor Ort

  1. Es gibt keine Einwände ist/Probleme UTF-8 durch moderne Frameworks und Datenbanken-Servern zu unterstützen.

  2. Sie werden Probleme vermeiden, wenn jemand Text in andere Sprache als erwartet und Sie bekommen ?????? anstelle von einigen Unicode-Symbolen oder noch schlimmer, wenn die Seitenvorlage nicht einmal gerendert wurde.

  3. Auch wenn Ihre Seite auf eine Sprache ohne mehrsprachige Benutzeroberfläche (in Zukunft auch) ausgerichtet ist, kann jemand auf Ihrer Website Material veröffentlichen und Kommentare von seinen Freunden in ihrer eigenen Sprache erhalten.

Grüße, Pavel

0

ich persönlich immer UTF-8 verwenden. Es wird gut unterstützt und jede Sprache, jedes Betriebssystem und jeder Browser unterstützt es irgendwie. Entitäten sind schön zu zeigen, aber sie sind ein Schmerz in den Nacken zu bearbeiten. Benannte Entitäten können sich auf viele Zeichen beziehen, decken jedoch nur westliche Zeichensätze ab. Für asiatische Sprachen müssen Sie zu hexen Einheiten zurückkehren und das ist nicht schön. Hexadezimale Entitäten müssen auch decodiert oder codiert werden, indem die Unicode-Tabellen verwendet werden. Daher möchten Sie möglicherweise einen Unicode-Flavor verwenden, um Ihren Text zu kodieren.

Wenn Ihre Hauptzielgruppe Englisch ist, denken Sie vielleicht, dass Sie mit ISO-8859-1 oder CP1252 durchkommen können, aber das wäre ein Fehler. Früher oder später wird jemand Akzente oder andere fremde Zeichen schreiben und wenn das passiert, ist es zu spät, um die Kodierung zu reparieren: ein Text ist schon vermasselt.

Hier sind ein paar weitere Lektüre, die mir eine Menge Kopfschmerzen gespeichert haben, wenn sie mit charsets Herumspielen:

Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) Ist eine detaillierte Einführung in Zeichensätze und durch joelonsoftware.com ihre Nutzung und Differenz. Die Informationen dort sind ziemlich allgemein, aber nützlich, um herauszufinden, welche Kodierung gewählt werden soll.

Character sets from Browser to Database ist ein sehr praktischer und pragmatischer Artikel von SUN, der eine Menge über die verschiedenen Stellen berichtet, an denen Sie überprüfen müssen, ob Ihre Kodierung nicht in etwas anderes konvertiert wird.

What Is UTF-8 And Why Is It Important? ist ein weiterer Artikel von SUN, der tief in das Wesentliche von UTF-8 eingeht und jede Frage zu den Details von UTF-8 beantworten sollte, nachdem er die ersten 2 Artikel gelesen hat.

0

Wenn ich auf einer Website hauptsächlich im ASCII-Raum (Englisch, die meisten romanischen Sprachen) arbeite, konvertiere ich alles Nicht-ASCII in benannte oder nummerierte Entitäten. Dies ermöglicht es mir oder anderen Personen ohne entsprechende Schriftarten daran zu arbeiten. Es scheint unwahrscheinlich, aber eines Tages wirst du am Ende ein godforsaken Terminal über SSH verwenden, das UTF-8 nicht tut und selbst wenn es das Host-System nicht die richtigen Schriftarten installiert hat.

Wenn ich Text schreibe, der meistens nicht in ASCII ist, benutze ich UTF-8. Wenn der Text alle Entitäten ist, die sowieso nicht lesbar sind wie Unicode-Ersatz-Boxen.

0

Die ersten 128 Zeichen von Unicode sind mit ASCII kompatibel. Ein mit diesen 128 Zeichen geschriebener Text ist ein gültiges ASCII- und UTF-8-Dokument. Unicode ist ein Standard und sollte von jedem benutzt werden. Englischsprachige Sprecher werden keinen Unterschied sehen, aber nicht Englisch. Ich persönlich bin ziemlich enttäuscht von der Software und ihren Erstellern, wenn sie nicht einmal meinen Nachnamen korrekt speichern und anzeigen kann.

Ich muss auch bemerken, dass die Zeichencodierung nur der erste einer ganzen Reihe von Problemen bezüglich der Internalisierung ist. Es kann besonders in kleineren Software-Stücken bemerkt werden, die normalerweise nicht dafür ausgelegt sind, mit verschiedenen nicht-englischen Grammatikproblemen umzugehen.

+0

Natürlich ist 7-Bit-ASCII eine Basis von UTF-8. Aber das hilft nicht einmal en Englisch nur Text. Du wirst ©, ¢, ½ ... haben – vartec