VSCode中Python读取土耳其字符文件打印乱码问题求助
解决VSCode中Python读取土耳其字符乱码问题
步骤1:确定文件实际编码
用chardet库检测文件真实编码,这是最可靠的方式:
import chardet with open("text.txt", "rb") as f: detect_result = chardet.detect(f.read()) print(f"文件编码:{detect_result['encoding']}")
运行后会输出文件实际编码(比如ISO-8859-9,土耳其常用的Latin-5编码)。
步骤2:用正确编码读取文件
根据检测出的编码修改读取代码,比如编码为ISO-8859-9时:
with open("text.txt", encoding="iso-8859-9") as file: contents = file.read() print(contents)
步骤3:适配VSCode终端编码
若读取正确但终端仍乱码,调整VSCode终端编码:
- 按下
Ctrl+,打开设置,搜索「Terminal > Integrated: Encoding」 - 将值设置为文件对应的编码(比如
iso-8859-9或utf-8) - 重启终端后再运行代码
也可通过代码强制适配终端编码,无需手动设置:
import sys with open("text.txt", encoding="iso-8859-9") as file: contents = file.read() # 将内容编码适配终端当前编码,避免乱码 print(contents.encode(sys.stdout.encoding, errors="replace").decode(sys.stdout.encoding))
步骤4:确认VSCode文件编码设置
打开text.txt后,查看VSCode右下角的编码标识:
- 若显示编码与检测结果不符,点击该标识,选择「Reopen with Encoding」,选正确编码后保存文件,后续读取会更稳定。
内容的提问来源于stack exchange,提问作者EmreEmre
相关产品推荐
相关产品推荐

