2010-11-29 14 views
0

Unter welchen Umständen würden Sie UTF-8 empfehlen? Gibt es eine Alternative, die demselben Zweck dient?UTF-8 verwendet und Alternativen

UTF-8 wird für i18n verwendet?

+0

Ich frage mich, warum die Frage -2 bekommen? – DarthVader

+1

Vielleicht wegen der zweiten Frage? "UTF-8 wird für i18n verwendet?". Ist nicht klar, was du damit meinst. –

Antwort

2

Da Sie dies mit Web-Design getaggt haben, nehme ich an, dass Sie die Code-Größe optimieren müssen, um so klein wie möglich zu sein, um Dateien schnell zu übertragen.

Die Alternativen zu UTF-8 wären die anderen Unicode-Kodierungen, da es keine Alternative zur Verwendung von Unicode gibt (zumindest für normale Computersysteme).

Wenn Sie sich ansehen, wie UTF-8 spezifiziert ist, werden Sie sehen, dass alle Codepunkte bis U + 007F ein Oktett benötigen und Codepunkte bis U + 07FF zwei Oktette benötigen, bis zu U + FFFF drei und vier Oktetts für Codepunkte bis zu U + 10FFFF. Für UTF-16 benötigen Sie zwei Oktette bis zu U + FFFF (meistens) und vier Oktette für Werte bis zu U + 10FFFF. Für UTF-32 benötigen Sie vier Oktette für alle Unicode-Punkte.

Mit anderen Worten, Skripte, die unter U + 07FF liegen, haben eine gewisse Größenvorteile bei der Verwendung von UTF-8 im Vergleich zu UTF-16, während Skripte darüber eine Größenstrafe haben. Da es sich bei der Domäne jedoch um Webdesign handelt, ist zu beachten, dass alle Steuerzeichen im UTF-8-Bereich von einem Oktett liegen. Dies trifft weniger auf Texte mit viel HTML-Markup und Javascript zu zu der Menge des tatsächlichen "Textes".

Skripte unter U + 07FF enthalten Latein (außer einigen Erweiterungen wie Tonzeichen), Griechisch, Kyrillisch, Hebräisch und wahrscheinlich noch einige mehr. Wikipedia hat eine ziemlich gute Berichterstattung über Unicode-Probleme, und auf der Unicode Consortium können Sie noch mehr Details erhalten.

-3

Verwenden Sie utf-8 für lateinische Sprachen. utf-16 für jede andere Sprache.

+0

, aber UTF-16 ist nicht abwärtskompatibel zu ASCII. – DarthVader

+3

UTF-8 unterstützt jede andere Sprache perfekt. Sie sind wahrscheinlich verwirrt mit ISO-8859. Der einzige Unterschied ist, dass UTF-16 4 Byte breit ist, während UTF-8 eine variable Byte-Breite hat (und somit weniger Bytes verbraucht). – BalusC

+0

@ user177883, dann sollten Sie gesagt haben, dass das eine Einschränkung in der Frage war. –

0

Verwenden Sie UTF-8 den ganzen Weg. No excuses.

+1

Unicode den ganzen Weg würde ich zustimmen, nicht unbedingt utf8 obwohl. –

0

Da Sie nach Empfehlungen fragen, empfehle ich Ihnen, es unter allen Umständen zu verwenden. Die ganze Zeit, d. H. Für HTML-Dateien und Textressourcen. Bei einer Nur-Englisch-Anwendung ändert das nichts, aber wenn Sie es tatsächlich lokalisieren müssen, wäre UTF-8 von vornherein ein Vorteil (Sie müssen Ihren Code nicht erneut aufrufen und ändern; eine Fehlerquelle weniger).

Wie für andere Unicode-Familie-Kodierungen (wie insbesondere UTF-16), würde ich nicht empfehlen, sie für die Web-Anwendung zu verwenden. Obwohl der Bandbreitenverbrauch für chinesische Zeichen (mindestens drei Bytes die ganze Zeit) tatsächlich höher ist, werden Sie Probleme mit der Übertragung und Browserinterpretation vermeiden (ja, ich weiß, dass theoretisch alles gleich funktionieren sollte, leider in der Praxis) neigt dazu, zu brechen).