如何将unicode日语从一个文件写入另一个文件?

2024-10-02 12:33:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些json文件,其中有些地方有编码的日语,比如\u672c\u30fb\u96d1\u8a8c\u30fb\u66f8\u7c4d\u60c5\u5831,我想把它们解码成日语。你知道吗

问题是当我使用这种方法时:

text = '\u672c\u30fb\u96d1\u8a8c\u30fb\u66f8\u7c4d\u60c5\u5831'
print(text)

而且是印刷的

本・雑誌・書籍情報

但当我直接从文件中读取它时,例如,准备好的文件索引.json它的内容是:

\u672c\u30fb\u96d1\u8a8c\u30fb\u66f8\u7c4d\u60c5\u5831

我用的方法是

file = open('index.json','r')
text = file.read()
print(text)

它刚印出来

\u672c\u30fb\u96d1\u8a8c\u30fb\u66f8\u7c4d\u60c5\u5831

有件事我发现有点奇怪,当我试着打印时:

print(file.read())
print(text)

file.read()不返回任何内容,即使有file.read(1)。你知道吗

编辑:我发现主要的问题是当您编写text = '\u672c'时,python会将\u672c识别为单个字符。但是当你从一个文件中读取时,它会将它识别为一个包含6个字符的字符串。无论如何要转换它?你知道吗


Tags: 文件方法textjsonreadfileprintu30fb
1条回答
网友
1楼 · 发布于 2024-10-02 12:33:20

这里有几个问题。你知道吗

假设您的文件包含以下(文字)文本:

\u672c\u30fb\u96d1\u8a8c\u30fb\u66f8\u7c4d\u60c5\u5831

您可以在Python中将其表示为

text = '\\u672c\\u30fb\\u96d1\\u8a8c\\u30fb\\u66f8\\u7c4d\\u60c5\\u5831'

或者

text = r'\u672c\u30fb\u96d1\u8a8c\u30fb\u66f8\u7c4d\u60c5\u5831'

要将文字转义转换为它们所表示的Unicode字符,需要正确解码:

text.encode('ascii').decode('unicode-escape')

结果

本・雑誌・書籍情報

file.read()file.read(1)对您不起作用的原因是文件不会自动倒带。一旦你读入文件,它就在最后,直到你手动倒带它或关闭并重新打开它。你知道吗

相关问题 更多 >

    热门问题