我试图解码一个shift-jis编码的字符串,如下所示:
string.decode('shift-jis').encode('utf-8')
能够在我的程序中查看它。
当我遇到两个移位jis字符(十六进制“0x87 0x54”和“0x87 0x55”)时,会出现以下错误:
UnicodeDecodeError: 'shift_jis' codec can't decode bytes in position 12-13: illegal multibyte sequence
但我确信它们是有效的shift-jis字符:http://www.rikai.com/library/kanjitables/kanji_codes.sjis.shtml
我还注意到那些字符在我的shift-jis文本编辑器中显示为黑框,这意味着它们无法被识别。所以这两个字符有一些特别的地方让我的编辑器和Python解码器失败了。帮忙?
(很抱歉,我无法发布示例字符串,因为当这些字符存在时,它不会从此处添加到剪贴板,也会自动转换为unicode。不过,我发布了它们的十六进制值。)
Shift_JISx0213在真实世界中不使用。它只是用来展示自己,伊姆霍。Windows无法处理它。字符集JIS X 0213在大多数情况下与Unicode一起使用,但不是Shift-JIS。
使用
'cp932'
(在Python 3中)。/sjis.txt包含
(它们保存在Windows 10上)
符号和最后三个汉字解释不同。
存在多个版本的Shift-JIS。
shift_jis
编解码器是JIS X 0208,而该表是JIS X 0213,对应于shift_jisx0213
编解码器。相关问题 更多 >
编程相关推荐