我正在尝试在Python中将字符串类型转换为Unicode。我希望它适用于任何非英语字符串,例如日语,中文或西班牙语。
例如,japanese_var有一些日文字符[ドキュメントを翻訳します]。
打印它会给,
'\x83h\x83L\x83\x85\x83\x81\x83\x93\x83g\x82\xf0\x96|\x96\xf3\x82\xb5\x82\xdc\x82\xb7'
检查其类型,
type(japanese_var)
<type 'str'>
如何将其转换为'unicode'类型?
我应该使用japanese_var.decode('mbcs')吗?使用此代码可能会产生什么后果,因为我将在不同的操作系统平台上使用它。不同的国外区域?
我正在使用python 2.5.4
我正在读取参数,该参数可以是其属性中任何非英文字符串的文件。
答案 0 :(得分:4)
您需要知道输入字符串的编码。没有可靠的通用解决方案。
编码应该来自输入字符串的来源。例如,如果您从网页中获取文本,则应将编码指示为HTTP Content-Type
的一部分,作为服务器的HTTP响应标头或页面中的<meta>
标记源。
知道编码后,请使用decode
方法。
此字符串似乎是Shift-JIS:
>>> x = '\x83h\x83L\x83\x85\x83\x81\x83\x93\x83g\x82\xf0\x96|\x96\xf3\x82\xb5\x82\xdc\x82\xb7'
>>> print x.decode( "shift-jis" )
ドキュメントを翻訳します
答案 1 :(得分:0)
通过传递“mbcs”解码任何语言环境,它对我有用。
谢谢你的帮助。