1

我正在尝试在读取文件的循环中解码日语字符串shift-jis

它可以工作,但是当它包含像“①”这样的带圆圈的数字字符时,我收到以下错误:

UnicodeDecodeError:“shift_jis”编解码器无法解码位置 24-25 中的字节:非法多字节序列

部分代码:

def read_short(data):
    return unpack('>h', data.read(2))[0]
def read_string(data):
    length = read_short(data)
    return unpack(str(length) + 's', data.read(length))[0].decode('shift-jis')

test = read_string(data)

是否有日本编解码器能够读取这种类型的字符,还是我必须事先找到转换它的方法?

4

2 回答 2

0
于 2020-07-14T14:53:31.680 回答
0

嗯,我有点笨。只需使用 cp932 编解码器即可解决此问题。

于 2020-05-25T22:24:49.430 回答