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

发布于 2024-12-03 10:28:34 字数 431 浏览 1 评论 0原文

例如,我有一个文件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字符串。

For example, I have a file a.js whose content is:

Hello, 你好, bye.  

Which contains two Chinese characters whose unicode form is \u4f60\u597d
I want to write a python program which convert the Chinese characters in a.js to its unicode form to output b.js, whose content should be: Hello, \u4f60\u597d, bye.

My code:

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

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

but it seems that the Chinese characters are still one character , not an ASCII string like I want.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

万人眼中万个我 2024-12-10 10:28:34
>>> print u'Hello, 你好, bye.'.encode('unicode-escape')
Hello, \u4f60\u597d, bye.

但您应该考虑使用 JSON,通过 json

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

But you should consider using JSON, via json.

秋日私语 2024-12-10 10:28:34

您可以尝试编解码器模块

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

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

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

You can try codecs module

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)
欲拥i 2024-12-10 10:28:34

您可以使用两种方法。
第一个,使用'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))

There two ways you can use.
first one, use 'encode' method

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

Also you can use 'codecs' module:

import codecs
print(codecs.raw_unicode_escape_encode(str1))
套路撩心 2024-12-10 10:28:34

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

I found that repr(content.decode("utf-8")) will return "u'Hello, \u4f60\u597d, bye'"
so repr(content.decode("utf-8"))[2:-1] will do the job

左耳近心 2024-12-10 10:28:34

您可以使用 repr:

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

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

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

you can use repr:

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

or you can use encode method:

print a.encode("raw_unicode_escape")
print a.encode("unicode_escape")
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文