我能输出中文
你这个是不是用的pycharm LeonardCohenX 发表于 2021-8-18 11:16
我也不知道你这个为什么会成功,可能你这个能够自动编码,我用的是VS code,必须用:
open(filename, 'r' ...
我也是vscode {:10_293:} LeonardCohenX 发表于 2021-8-18 11:16
我也不知道你这个为什么会成功,可能你这个能够自动编码,我用的是VS code,必须用:
open(filename, 'r' ...
但是只要json文件里面没有中文 存的\u啥啥啥 就不用考虑编码了 纯英文纯数字啥编码都没关系的 import json
# 首先你存入的内容必须是json的格式
# 所以你写入的时候必须用json在文件中写入
# 因为json的数据如果是中文,会使用Unicode编码格式写入文件,你不能用手写,我给你举例说明:
pc = '电脑'
res = json.dumps(pc)
print(res)# "\u7535\u8111" 这个是电脑的JSON格式的表示 如果你在里面写入中文是不行的,这就是导致你读取乱码的原因
# 下面我们整理下你代码应该怎么写:
# 先写入文件
pc = '电脑'
filename = 'username.json'
with open(filename, encoding='utf-8', mode='wt') as file_object:
json.dump(pc, file_object)
with open(filename, encoding='utf-8',mode='rt') as file_object:
username = json.load(file_object)
print("Welcome back, " + username + "!")
kogawananari 发表于 2021-8-18 11:18
我也是vscode
我用的是暗色主题,你这个颜色我还真没看出来😂 kogawananari 发表于 2021-8-18 11:19
但是只要json文件里面没有中文 存的%u啥啥啥 就不用考虑编码了 纯英文纯数字啥编码都没关系的
你这个我试了,确实是这样,我首先打印"武",结果文件显示\u什么的,如果我不管这个东西再次打印,它显示的也是"武",只不过username.json文件里是\u,而不是“武”,这个其实就是一个视觉的问题。相反如果我。利用那个什么编码格式,我就得在里面添加我刚才跟你说的那个东西。这下子我们两个人都懂了。针布戳 gdmao002 发表于 2021-8-18 11:28
我才懂这个东西,如果我在一开始利用json.dump打印中文后不管username.json文件中的\u什么的,直接利用json.load打印,打印的结果确实是刚才打印的中文。只不过为了方便观察username.json文件里的内容,所以在里面添加了相关编码格式。谢谢朋友 LeonardCohenX 发表于 2021-8-18 11:44
我才懂这个东西,如果我在一开始利用json.dump打印中文后不管username.json文件中的%u什么的,直接利用js ...
中文在里面的编码格式,一般不是给人看的,是机器看的,如果你要看最多只能看懂assic一些码表的内容在里面,也就是常说的数字和英文等,所以如果涵盖中文的,就没办法看懂,只能读取了,一般来说在json中手写的数据只会是正常的数字和英文这些,写中文json解码的时候就乱了。你应该看看 json格式 在python中有哪些对应表示,这样有助于你读懂json数据的含义 gdmao002 发表于 2021-8-18 11:55
中文在里面的编码格式,一般不是给人看的,是机器看的,如果你要看最多只能看懂assic一些码表的内容在里 ...
好的大佬,你这一看就是明白人。THANKS
页:
1
[2]