2
我似乎無法使用內置的open()函數(堆棧跟蹤顯示)在Python 3.3下解碼UCS-2 BE文件UnicodeDecodeError幷包含我的readLine()方法) - 實際上,我無法找到指定此編碼的標誌。Python 3:讀取UCS-2(BE)文件
使用Windows 8,終端設置爲代碼頁65001,使用'Lucida Console'字體。
代碼段將不會是太大的幫助,我想:
def display_resource():
f = open(r'D:\workspace\resources\JP.res', encoding=<??tried_several??>)
while True:
line = f.readline()
if len(line) == 0:
break
知人任何洞察到這一問題。
Hello Martijn,我也認爲UTF16應該工作(基於你鏈接的同一篇文章)。它的工作原理就像utf_16_be一樣,我在屏幕上顯示了所有日文字母的相同字符 - 例如「ブラウザー」變成了一堆相同的「不可讀」字符(正方形)。我應該再次在兩者之間做出區分 - 閱讀並打印它。這也是終端的限制嗎?展望未來,如果閱讀工作正常,我可以使用字符串,然後我可以將它們寫回另一個UCS2文件,並在UCS2-enabledEditor中獲得「正確」輸出? –
恐怕這是終端的限制。你的字體不支持這些字符;你必須找到一個不同的字體。僅僅因爲終端無法顯示它們並不意味着數據本身已經被損壞,所以是的,如果您在寫入文件時編碼回UTF-16,則可以使用其他工具重新打開它。 –
謝謝Martijn。非常感激! –