13

我似乎无法使用内置的 open() 函数在 Python 3.3 下解码 UCS-2 BE 文件(遗留的东西)(堆栈跟踪显示 UnicodeDecodeError 并包含我的 readLine() 方法) - 事实上,我找不到用于指定此编码的标志。

使用 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

感谢对此问题的任何见解。

4

1 回答 1

35

UCS-2 是 UTF-16,实际上,对于在任何情况下仍称为 UCS-2 时分配的任何代码点。

encoding='utf16'. 如果没有 BOM(字节顺序标记,开始时 2 个字节,对于 BE that'd be \xfe\xff),则使用encoding='utf_16_be'强制字节顺序。

于 2013-01-23T20:10:58.977 回答