Python将文件内容转换为unicode形式

时间:2011-09-07 05:25:16

标签: python string unicode encode

例如,我有一个文件a.js,其内容为:

Hello, 你好, bye.  

其中包含两个汉字,其unicode格式为\u4f60\u597d
我想编写一个python程序,它将a.js中的中文字符转换为unicode形式,输出b.js,其内容应为:Hello, \u4f60\u597d, bye

我的代码:

fp = open("a.js")
content = fp.read()
fp.close()

fp2 = open("b.js", "w")
result = content.decode("utf-8")
fp2.write(result)
fp2.close()  

但似乎中文字符仍然是一个字符,而不是我想要的ASCII字符串。

4 个答案:

答案 0 :(得分:5)

>>> print u'Hello, 你好, bye.'.encode('unicode-escape')
Hello, \u4f60\u597d, bye.

但你应该考虑通过json使用JSON。

答案 1 :(得分:1)

您可以尝试编解码器模块

codecs.open(filename,mode [,encoding [,errors [,buffering]]])

a = codecs.open("a.js", "r", "cp936").read() # a is a unicode object

codecs.open("b.js", "w", "utf16").write(a)

答案 2 :(得分:-1)

我发现repr(content.decode(“utf-8”))将返回"u'Hello, \u4f60\u597d, bye'"
所以repr(content.decode("utf-8"))[2:-1]将完成这项工作

答案 3 :(得分:-1)

你可以使用repr:

a = u"Hello, 你好, bye. "
print repr(a)[2:-1]

或者您可以使用编码方法:

print a.encode("raw_unicode_escape")
print a.encode("unicode_escape")