一隻太平洋睡鯊 发表于 2020-9-21 21:22:38

零基础入门学习Python第29課影片內容提問

影片地址

(打碼是因為,內容是我隨便複製一段簡體文章,基於尊重該文章作者)
為什麼小甲魚在視頻中,都不需要加

encoding='utf-8'

就能打開文本文件?

昨非 发表于 2020-9-21 21:28:27

python版本原因吧

ba21 发表于 2020-9-21 21:30:09

能解析中文的编码有 gb2312 gbk unicode utf-8
至于为什么视频中可以不加,那是因为文件保存的时候用的是系统默认编码(以上的其中一种)。所以读取的时候可以不加。
如果你文本保存的遍码和你系统默认的不一至,那当然要指定编码才能打开。

一隻太平洋睡鯊 发表于 2020-9-21 22:09:03

ba21 发表于 2020-9-21 21:30
能解析中文的编码有 gb2312 gbk unicode utf-8
至于为什么视频中可以不加,那是因为文件保存的时候用的是 ...


這樣啊...
看報錯,小甲魚用的系统默认编码是gbk?
因為我們這邊的txt默認不是gbk
可以請問如何把txt編碼成gbk嗎?

ba21 发表于 2020-9-21 23:37:47

一隻太平洋睡鯊 发表于 2020-9-21 22:09
這樣啊...
看報錯,小甲魚用的系统默认编码是gbk?
因為我們這邊的txt默認不是gbk


关键问题不在默不默认。不是所有用户的系统默认都使用的同一种编码。你的文本文件复制到了别人电脑上,编码不一至就得用你保存的编码来解码。而现在有很多编辑器 如:notepad++ 都带自动编码解析功能,它先判断你文件是用什么编码保存的,然后再用该编码来解析打开。


open 读可以指定,那么写也可以指定。可自己测试看效果。
with open(r"test1.txt", "w", encoding="gbk") as f:
    f.write("鱼C论坛")

默认ansi 参考
https://blog.csdn.net/Hodors/article/details/102474648
页: [1]
查看完整版本: 零基础入门学习Python第29課影片內容提問