Python 3:读取UCS-2(BE)文件

eld*_*der 7 file ucs2 python-3.x

我似乎无法在Python 3.3下解码UCS-2 BE文件(传统的东西),使用内置的open()函数(堆栈跟踪显示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
Run Code Online (Sandbox Code Playgroud)

欣赏对此问题的任何见解.

Mar*_*ers 24

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

打开它encoding='utf16'.如果没有BOM(字节顺序标记,开头为2个字节,对于BE而言\xfe\xff),则使用encoding='utf_16_be'强制字节顺序.