是小雅啊 发表于 2022-2-4 16:40:03

write写入不了中文

程序是这样的:
f=open("t.txt","w")
f.write("太阳")
f.close()
用write写字符串、列表都报错,提示UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-1: character maps to <undefined>
但是系统默认编码是utf-8,不知道怎么解决{:10_266:}

Twilight6 发表于 2022-2-4 18:47:34




在 open 函数中设置 encoding = "utf-8" ,设置读写文件的编码解码方式

或者,打开你的 txt 文件夹,选择另存为,会弹出另存为窗口,在窗口的右下方有编码方式,设置为 ANSI 即可

是小雅啊 发表于 2022-2-4 23:04:33

Twilight6 发表于 2022-2-4 18:47
在 open 函数中设置 encoding = "utf-8" ,设置读写文件的编码解码方式

或者,打开你的 txt 文件 ...

好的,我试试!!!感谢

是小雅啊 发表于 2022-2-4 23:15:25

Twilight6 发表于 2022-2-4 18:47
在 open 函数中设置 encoding = "utf-8" ,设置读写文件的编码解码方式

或者,打开你的 txt 文件 ...

使用第一个方法,已经可以读取了,但是写入使用print输出的是数字,不是汉字
另外,如果写入的是列表,依旧会报错,提示写入参数必须是字符串不能是列表,但是我看视频学习上演示,write是可以写入列表的,一般写入列表是用writelines,但是这个也会报错,真困扰啊

Twilight6 发表于 2022-2-5 09:42:06

是小雅啊 发表于 2022-2-4 23:15
使用第一个方法,已经可以读取了,但是写入使用print输出的是数字,不是汉字
另外,如果写入的是列表, ...



writelines 写入列表的前提是列表中的元素都是字符串,才能依次将其写入

读取文件内容使用的是 read 函数,直接打印是显示文件的字节数

是小雅啊 发表于 2022-2-5 12:15:12

Twilight6 发表于 2022-2-5 09:42
writelines 写入列表的前提是列表中的元素都是字符串,才能依次将其写入

读取文件内容使用的是 re ...

好的!理解啦,非常感谢
页: [1]
查看完整版本: write写入不了中文