2016-05-05 24 views
2

Ich versuche, mehrere Dateien im Stapel von US-ASCII in UTF-8 zu konvertieren. Ich habe das Problem auf den iconv connand eingegrenzt, den ich anscheinend falsch benutze, trotz meiner besten Reinigung von Stack Overflow. Irgendeine Idee, was hier schief läuft?Wie kann ich mit iconv von US-ASCII in UTF-8 konvertieren?

Überprüfung der Codierung:

file -i accounting.cfm 
accounting.cfm: text/html; charset=us-ascii 

Versuch iconv mit konvertieren:

iconv -f us-ascii -t utf-8 accounting.cfm > accounting.cfm.recode 

Überprüfen Sie die Codierung auf die resultierende Datei:

file -i accounting.cfm.recode 
accounting.cfm.recode: text/html; charset=us-ascii 

Es scheint, die resultierende Datei noch codiert für den US-ASCII-Zeichensatz. Wenn ich eine einzelne Datei über Sublime als UTF-8 (Save With Encoding) speichere, wird der Zeichensatz als utf-8 angezeigt. Ich verstehe, dass das US-ASCII eine Untermenge von UTF-8 ist, aber wenn ich die US-ASCII-kodierte Datei im Browser aufrufe, bekomme ich Müllzeichen (die gefürchteten Fragezeichen in Diamanten, wenn sie in einen Browser geladen werden). Dies ist für eine ältere ColdFusion-Site. Wenn ich die Datei Saved With Encoding through Sublime aufruft, wird mein Fremdzeichensatz korrekt angezeigt. Irgendwelche Ideen, was ich falsch mache? Vielen Dank.

+1

Eine ASCII-Datei ist bereits eine UTF-8-Datei, da UTF-8 abwärtskompatibel ist. 'Datei' druckt den kleinsten gemeinsamen Nenner; Sie müssen nur wissen, was das bedeutet. Voting zum Schließen als unreproduzierbar. – tripleee

+3

Beim Speichern als UTF-8 kann die Stückliste am Anfang der Datei hinzugefügt werden. Diese drei Bytes machen es zu etwas anderem als US-ASCII, ganz absichtlich. Es ist nicht "verstümmelt", Sie verwenden nur ein falsches oder falsch konfiguriertes Werkzeug, um es zu untersuchen. – tripleee

+0

Irgendwelche Vorschläge für ein besseres Werkzeug oder die Verwendung des Befehls 'file'? Danke für deine Antwort. – FlipperPA

Antwort

1

Also habe ich es herausgefunden. Coldfusion funktioniert die BOM müssen ordnungsgemäß funktionieren, wenn Sie ein <cfprocessingdirective pageencoding="utf-8">-Tag an der Spitze eines jeden CFM-Datei setzen wollen, können Sie in Nicht-ASCII-Zeichen haben. Referenz:

https://forums.adobe.com/thread/930550 https://www.adobe.com/support/coldfusion/internationalization/internationalization_cfmx/internationalization_cfmx3.html

I‘ Ich bin ein Sublime Benutzer, also ging ich einfach zu Datei -> Save With Encoding, UTF-8 mit BOM, und es funktioniert ohne das Tag. Ich bin dann ziemlich glücklich geworden, dass ich die meiste Zeit in Python 3 verbracht habe!