2 Stimmen

UTF-8 vs. Codepage 1252 in Visual Studio 2008 für HTML und JavaScript, die europäische Zeichen enthalten

Ich habe ein Programm entwickelt Parser das dauert JavaScript als Eingabe und erstellt eine komprimierte Version dieses JavaScript als Ausgabe.

Zunächst stellte ich fest, dass der Parser beim Versuch, das eingegebene JavaScript zu lesen, fehlschlug. Ich glaube, das hat etwas mit der Tatsache zu tun, dass Visual Studio 2008 speichert seine Dateien standardmäßig als UTF-8 . Und dabei umfasst VS eine Reihe von versteckte Zeichen am Anfang der UTF-8-Datei .

Als Abhilfe habe ich Visual Studio verwendet, um die Datei als Code Seite 1252 . Danach war mein Parser in der Lage, das eingegebene JavaScript zu lesen.

Beachten Sie, dass ich europäische Sonderzeichen verwenden muss, die Akzente enthalten.

Also, hier sind meine Fragen:

  1. Soll ich die Codepage 1252 oder UTF-8 verwenden?
  2. Warum speichert Visual Studio Dateien standardmäßig als UTF-8?
  3. Wenn ich Dateien als 1252 speichere, führt das zu Problemen?
  4. Mir scheint, dass Eclipse Dateien standardmäßig als Codepage 1252 speichert. Ist das richtig?

9voto

Michael Borgwardt Punkte 334642

UTF-8 ist eine bessere Option, da es wirklich unterstützt alle bekannte Zeichen, während bei 1252 Zeichen, die Sie benötigen, fehlen können (sogar in europäischen Sprachen).

Offensichtlich speichert VS2008 UTF-8 mit einer Byte-Order-Markierung - sollte es möglich sein, dies entweder auszuschalten oder den Parser zu veranlassen, es zu erkennen, oder die BOM irgendwo dazwischen zu entfernen.

3 Stimmen

Sie können die Option "Speichern mit Kodierung" im Speicherdialog verwenden und dann explizit "UTF-8 ohne Signatur" auswählen.

1 Stimmen

Ja, danke Leute, ich habe es ohne Signatur gespeichert... und es scheint funktioniert zu haben... Gibt es jemanden zu sagen, speichern / Erstellen standardmäßig UTF-8 ohne Signatur in vs 2008?

3voto

zappan Punkte 3608

Utf-8 hat eine Byte Order Mark (BOM) Signatur am Anfang einer Datei, die einige Editoren und offensichtlich auch Bibliotheken nicht verstehen... http://en.wikipedia.org/wiki/Byte-order_mark

Wenn Sie es umgehen können, wird UTF-8 heute auf jeden Fall bevorzugt. Versuchen Sie, die ersten Bytes von BOM zu entfernen, bevor Sie den JS-Code an den Parser übergeben, oder finden Sie eine Option in Ihrer IDE, wenn er das nicht schreiben kann

1252 verursacht dieses Problem nicht und Sie werden keine Probleme damit haben, aber Sie werden Ihr Web in einem veralteten Format ausgeben, ich würde es heute nicht tun, es gab in der Vergangenheit eine Menge Kodierungsdurcheinander im Web mit iso vs. win Codepages für verschiedene Sprachen...

1voto

smok1 Punkte 2942

Verwenden Sie UTF-8. 1252 deckt nicht ganz Europa ab, daher sollten Sie in einigen Ländern (Mitteleuropa) 1250 verwenden, oder richtiger - iso 8859-2. Die einzige echte Option ist also UTF-8.

1voto

jms Punkte 785

Die Verwendung von 1252 wird Probleme verursachen?

Hängt von den Ländern ab, in denen Ihre Anwendung funktionieren soll

Soweit ich weiß, funktioniert 1252 (oder ISO 8859-1) in

  • UK
  • Deutschland
  • Schweiz
  • Österreich
  • Italien
  • Frankreich
  • Niederlande
  • Island
  • Spanien

Oh, Wikipedia hat eine ausführlichere Liste: http://en.wikipedia.org/wiki/ISO/IEC_8859-1

Sie können also CP 1252 verwenden, wenn Ihre Anwendung nur in den genannten Ländern/Sprachen verwendet wird.

1 Stimmen

ISO 8859-1 hat eine Reihe von Problemen mit seltenen französischen Wörtern, daher wurde ISO 8859-15 geschaffen.

0 Stimmen

0voto

erenon Punkte 18471

STÜCKLISTE am Anfang der Datei stand. IMHO sollten Sie utf8 verwenden, das ist heutzutage sehr aktuell.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X