Konvertieren UCS-2-Datei zu UTF-8 mit PHP
Ich habe eine CSV-Datei geliefert, die von einem client, das muss analysiert werden und eingefügt in eine Datenbank mit PHP.
Vor dem einfügen der Daten in die DB, ich will es konvertieren zu UTF-8, aber ich kann nicht scheinen, um herauszufinden, wie.
Dies ist, was ich habe versucht zu erkennen, die Dateien Codierung:
$ enca -d -L zh ./artigos.txt
./artigos.txt: Universal character set 2 bytes; UCS-2; BMP
CRLF line terminators
Byte order reversed in pairs (1,2 -> 2,1)
Ich habe versucht mit der iconv-Funktion, aber es vermasselt die Konvertierung und zeigt das Ergebnis mit den folgenden Zeichen als die Originale.
Erste Zeile der Datei (base64-kodiert):
IgAwADMAMQAxADkAIgAsACIANwAzADEAMwA0ADYAMgA2ADQAMAAwADEANQAiACwAIgBBAGcAcgBhAGYAYQBkAG8AcgAgAFIAYQBwAGkAZAAgADkAIABIAGUAYQB2AHkAIABEAHUAdAB5ACIALAAiAEEAZwByAGEAZgBvACAAOQAvADgALAAgADkALwAxADAALAAgADkALwAxADIALAAgADkALwAxADQAIgAsACIAMQAxADAAZgBsAHMAIgAsACIAIgAsACIAIgAsACIAIgAsACIAMAAzADEAMQA5AC4AagBwAGcAIgAsACIAIgAsACIAMQAsADIAMAAiACwAIgA1ADkALAA5ADAAIgAsACIAMgAiACwAIgAwACIALAAiADAAIgAsACIAMAAiACwAIgAwACIALAAiADAAIgAsACIAMAAiACwAIgAwACIALAAiADAAIgAsACIAMAAiACwAIgAwACIALAAiADAAIgAsACIAMAAiACwAIgAwACIALAAiADAAIgAsACIAMAAiACwAIgAwACIALAAiADAAIgAsACIAMAAiACwAIgAwACIALAAiADAAIgAsACIARgBhAGwAcwBlACIADQAK
extrahieren Sie eine Probe von text, insbesondere ein kleines Stück rund um die Zeichen, die Durcheinander in der Umstellungsphase. Transport zu uns binary safe über base64_encode(). Dann vielleicht kann jemand es identifizieren. Ich vermute, es könnte sein, big-endian?
Jetzt die erste Zeile der Datei die original-Beitrag
Jetzt die erste Zeile der Datei die original-Beitrag
InformationsquelleAutor Igor Azevedo | 2012-06-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese scheint zu funktionieren(little-endian), althoug Sie nicht enthalten keine nicht-ascii-chars
InformationsquelleAutor goat
Microsoft Excel CSV-sind in der Regel Little-Endian codiert (das dauerte mir zu lange, um das herauszufinden).
Wenn Sie Sie nutzen wollen, z.B. mit fgetcsv sollten Sie konvertieren Sie die Datei in UTF-8 vor.
Ich Tue das folgende:
InformationsquelleAutor Juergen
python :
Einer der Methode zu Kodieren ist
Zurück konvertieren
Hinweis : ucs-2be ist veraltet und zu bewegen, um utf-16-werden
Decoder
InformationsquelleAutor Deepak