我已經從文件加載字符串。當我打印出來的字符串:將UTF-16轉換爲UTF-8
print my_string
print binascii.hexlify(my_string)
我得到:
2DF5
0032004400460035
含義此字符串是UTF-16
。我想這個字符串轉換爲UTF-8
,這樣上面的代碼產生這樣的輸出:
2DF5
32444635
我已經試過:
my_string.decode('utf-8')
哪個輸出:
32004400460035
編輯:
下面是一個快速示例:
hello = 'hello'.encode('utf-16')
print hello
print binascii.hexlify(hello)
hello = hello[2:].decode('utf-8')
print hello
print binascii.hexlify(hello)
其中產生這樣的輸出:
��hello
fffe680065006c006c006f00
hello
680065006c006c006f00
預計產出將是:
��hello
fffe680065006c006c006f00
hello
68656c6c6f
這不完全是一個艱鉅的任務。你有什麼嘗試,你卡在哪裏? –
另外,您還有沒有BOM的UTF-16數據。根據主要的空值判斷,你有大端的UTF-16,但這可能只是部分數據?數據來自哪裏? –
@MartijnPieters更新了我的嘗試。輸出是從Windows上的程序生成的文件加載的。 – Juicy