在python中将字符串转换为unicode

时间:2013-12-09 09:39:10

标签: python unicode

我正在尝试在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

我正在读取参数,该参数可以是其属性中任何非英文字符串的文件。

2 个答案:

答案 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”解码任何语言环境,它对我有用。

谢谢你的帮助。