sublime text3 不显示 utf8 字符,而是显示它们的代码

sublime text3 is not displaying utf8 character but their codes

我正在处理一些德语文本数据。我试图将一些元数据保存到 python 中的 JSON 文件中。

这是元数据的样子(您可能会注意到,有 ä、ö 字符):

{'pages': ['kitchwitch.ch_posts.csv',
  'Sujetbaizinbasel_posts.csv',
  'Guggenmusik-Moore-Schränzer-149777592206118_posts.csv',
  'zueundrichproductions_posts.csv',
  'glueckshof_posts.csv',
  'Lieberockt_posts.csv',
  'Pfadi-Schöftle-699078857125683_posts.csv'...
with open('./gsw_fb_r1_metadata.json','w',encoding='utf8' )as f:
    json.dump(metadata,f)

但是当我用 Sublime Text3 打开它时,我得到以下信息:

{"pages": ["kitchwitch.ch_posts.csv", "Sujetbaizinbasel_posts.csv", 
"Guggenmusik-Moore-Schra\u0308nzer-149777592206118_posts.csv", 
"zueundrichproductions_posts.csv", "glueckshof_posts.csv", 
"Lieberockt_posts.csv", "Pfadi-Sch\u00f6ftle-699078857125683_posts.csv", 

所以 ö 和 ä 显示不正确。我怎样才能让它们像 Python 那样正常显示?这个问题与 Sublime Text 或我有关吗?谢谢!

有效JSON。默认设置是仅使用 ASCII 和 Unicode 转义码写入数据。当您使用 json.load() 将 JSON 加载回 Python 时,字符串将再次包含原始字符。

如果您希望 JSON 文本文件可读而不是使用转义码,您可以使用 ensure_ascii=False:

with open('./gsw_fb_r1_metadata.json','w',encoding='utf8' )as f:
    json.dump(metadata,f,ensure_ascii=False)

这会将数据作为 UTF-8 写入文件,并可在支持 UTF-8 的文本编辑器中读取。