【发布时间】:2012-02-24 18:08:12
【问题描述】:
在我的程序中,我将 shift-jis 字符代码作为 Python 整数,我需要将其转换为相应的 utf8 字符代码(也应该是整数)。 我怎样才能做到这一点? 对于 ASCII,您有有用的函数 ord()/chr(),它允许您将整数转换为 ASCII 字符串,稍后您可以轻松地将其转换为 unicode。对于其他编码,我找不到类似的东西。
使用 Python 2。
编辑:最终代码。谢谢大家:
def shift_jis2unicode(charcode): # charcode is an integer
if charcode <= 0xFF:
string = chr(charcode)
else:
string = chr(charcode >> 8) + chr(charcode & 0xFF)
return ord(string.decode('shift-jis'))
print shift_jis2unicode(8140)
【问题讨论】:
-
将它们作为整数而不是字节来获取是不寻常的——你可以改变吗?
-
对不起,我不能。顺便说一句,我认为“字节”是 Python 3 中的新内容,我使用 2。
-
Python 2
str像字节一样工作,它在 2.6 和 2.7 中有一个bytes别名。 -
显示一些示例数据,让我们更好地了解您正在使用什么。
-
"str" 是一个内置类型。 “字符串”是一个内置模块。从技术上讲,您可以将它们用作变量名,但这很令人困惑。最好避开它们。
标签: python encoding utf-8 shift-jis