将python源代码转换为utf-8

时间:2016-01-19 21:44:14

标签: python utf-8

上下文 我正在使用谷歌的App Engine(在Python中)连接维基百科的API。 然后我得到一个用于在网页上显示的json文件。 它工作正常,但我遇到了突出/非拉丁字符的问题。

实际问题: 当我查询“Nikola Tesla”时,他在西里尔语中的名字是python源代码,而不是utf-8: \u041d\u0438\u043a\u043e\u043b\u0430 \u0422\u0435\u0441\u043b\u0430

因此,python源代码无法正确读取,并且他在网页上的名称显示为\u041d\u0438\u043a\u043e\u043b\u0430 \u0422\u0435\u0441\u043b\u0430而不是НиколаТесла。

如何将此python源代码转换为有效的utf-8:\xD0\x9D\xD0\xB8\xD\xBA\xD0\xBE\xD0\xBB\xD0\xB0

除了我煞费苦心地搜索个别角色,就是......

谢谢

1 个答案:

答案 0 :(得分:0)

u"\u041d"(带u前缀)和"\u041d"(没有u前缀)之间存在差异 - 首先将Python视为具有unicode字母{{的unicode字符串1}},第二个被视为非unicode字符串,因此Python不会将\u041d识别为unicode字母。

如果您的文字没有前缀(并且您无法手动添加前缀),那么您必须使用\u041d将其转换为正确的unicode字符串

decode('unicode-escape')

如果你有正确的unicode字符串,那么你可以将其转换为“UTF-8”

"\u041d".decode('unicode-escape') 

u"\u041d"

-

我在示例中使用字符串,但您可以使用带字符串的变量。

u"\u041d".encode('utf-8')

'\xd0\x9d'