Python将文件内容转换为Unicode格式

2 投票
5 回答
6792 浏览
提问于 2025-04-17 01:38

比如,我有一个文件叫做 a.js,里面的内容是:

Hello, 你好, bye.  

这个文件里有两个中文字符,它们的 Unicode 形式是 \u4f60\u597d
我想写一个 Python 程序,把 a.js 中的中文字符转换成它的 Unicode 形式,然后输出到 b.js,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 字符串。

5 个回答

0

你可以用两种方法。第一种是使用 'encode' 方法。

str1 = "Hello, 你好, bye. "
print(str1.encode("raw_unicode_escape"))
print(str1.encode("unicode_escape"))

另外,你也可以使用 'codecs' 模块:

import codecs
print(codecs.raw_unicode_escape_encode(str1))
1

你可以试试 codecs 模块

codecs.open(文件名, 模式[, 编码[, 错误处理[, 缓冲]]])

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

codecs.open("b.js", "w", "utf16").write(a)
5
>>> print u'Hello, 你好, bye.'.encode('unicode-escape')
Hello, \u4f60\u597d, bye.

不过你可以考虑使用JSON,具体可以通过json这个链接了解。

撰写回答