【发布时间】:2012-02-08 03:36:36
【问题描述】:
我正在处理一个使用绝对路径引用另一个文件的二进制文件。 该路径同时包含日文和 ascii 字符。
字符串的长度是给定的,所以我可以读取那么多字节并将其转换为字符串。
但是问题是试图转换字符串。如果我将编码指定为 ascii,它将在日文字符上失败。如果我将其指定为日语编码(shift-jis 或其他),它将无法正确读取英文字符。
每个 ascii 字符使用一个字节,而每个日文字符使用两个字节。
将这些字节转换为字符串的最快和最干净的方法是什么?编码是已知的。相同的技术是否适用于旧版本的 python。
【问题讨论】:
-
不要混合编码;一切都使用 utf-8。
-
如果我正在阅读的来源不是对所有内容都使用 utf-8,那将不起作用。我使用的许多其他文件的开发人员也不使用 utf-8(无论是中文、日文还是韩文)。
-
使用 mybytestring.decode('shift-jis') 不起作用吗? shift-jis 在理论上与 ascii 兼容,除了可能的 \ 和 ~ 字符,即使它不是真正的标准。
标签: unicode python-3.x string-parsing