python写入中文、用utf-16编码得出二进制字节串_在python中将unicode UTF16数据写入文件时出现问题...
我正在用python2.6.1開(kāi)發(fā)Windows。在
我有一個(gè)包含單個(gè)字符串Hello的Unicode UTF-16文本文件,如果我在二進(jìn)制編輯器中查看它,我會(huì)看到:FF FE 48 00 65 00 6C 00 6C 00 6F 00 0D 00 0A 00
BOM H e l l o CR LF
我要做的是讀取這個(gè)文件,通過(guò)googletranslateapi運(yùn)行它,然后將它和結(jié)果都寫(xiě)入一個(gè)新的Unicode UTF-16文本文件。在
我寫(xiě)了下面的Python腳本(實(shí)際上,我編寫(xiě)了比這更復(fù)雜的東西,并進(jìn)行了更多的錯(cuò)誤檢查,但這只是一個(gè)最小的測(cè)試用例):
^{pr2}$
這給了我一個(gè)幾乎是Unicode的文件,其中有一些額外的字節(jié):FF FE 48 00 65 00 6C 00 6C 00 6F 00 0D 00 0A 00 0A 00
20 22 E3 81 93 E3 82 93 E3 81 AB E3 81 A1 E3 81 AF 22 0A 00
我可以看到20是一個(gè)空格,22是一個(gè)引號(hào),我假設(shè)“E3”是一個(gè)轉(zhuǎn)義字符,urllib2用它來(lái)表示下一個(gè)字符是UTF-16編碼的??在
如果我運(yùn)行相同的腳本,但是使用“cs”(捷克語(yǔ))而不是“ja”(日語(yǔ))作為目標(biāo)語(yǔ)言,那么響應(yīng)都是ASCII,我得到的Unicode文件首先是UTF-16字符,然后是“Ahoj”作為單字節(jié)ASCII字符。在
我肯定我錯(cuò)過(guò)了一些顯而易見(jiàn)的東西,但我看不出是什么。我試過(guò)了urllib.unquote(),但這沒(méi)有幫助。我還嘗試在f.readlines()中返回時(shí)打印該字符串,這一切看起來(lái)都很合理,但很難判斷,因?yàn)槲业慕K端窗口不支持Unicode。在
還有什么建議可以試試嗎?我已經(jīng)看過(guò)了建議的欺騙,但似乎沒(méi)有一個(gè)與我的設(shè)想完全吻合。在
總結(jié)
以上是生活随笔為你收集整理的python写入中文、用utf-16编码得出二进制字节串_在python中将unicode UTF16数据写入文件时出现问题...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ip代理服务器软件25探索云速捷_IP代
- 下一篇: python循环中append_[Pyt