我正在阅读包含单个单词的文本文件B\xc3\xa9zier.
我希望将其转换为等效的解码utf-8格式,Bézier然后将其打印到控制台.
我的代码如下:
foo=open("test.txt")
for line in foo.readlines():
for word in line.split():
print(word.decode('utf-8'))
foo.close()
Run Code Online (Sandbox Code Playgroud)
输出是:
B\xc3\xa9zier
Run Code Online (Sandbox Code Playgroud)
但是,如果我做这样的事情:
>>> print('B\xc3\xa9zier'.decode('utf-8'))
Run Code Online (Sandbox Code Playgroud)
我得到了正确的输出:
Bézier
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚为什么会这样?
好像你在文件中有一个原始的utf8转义字符串,用来string_escape代替解码它
with open('test.txt') as f:
for line in f:
for word in line.split():
print(word.decode('string_escape').decode('utf-8'))
Bézier
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
131 次 |
| 最近记录: |