1e3e 发表于 2024-5-15 10:50

经指定encoding='utf-8',为什么wj.txt写入中文后全是乱码

本帖最后由 1e3e 于 2024-5-15 15:57 编辑

import os
import datetime


with open("d:\\sendmail\\wj.txt", "a", encoding='utf-8') as f:
      current_date = datetime.datetime.now().strftime("%Y-%m-%d")


    for root, dirs, files in os.walk("d:\\upload"):
      
      if root == "d:\\upload":
         
            for file in files:
               
                f.write(file + " + " + current_date + "\n")
            
            for dir in dirs:
               
                f.write(dir + " + " + current_date + "\n")

      else:

            pass
上面这段代码中,我已经指定encoding='utf-8',为什么wj.txt写入中文后全是乱码呢?有那位大大可以帮忙看一哈吗?

kll545012 发表于 2024-5-15 10:52

GBK是中文编码吧

1e3e 发表于 2024-5-15 10:55

kll545012 发表于 2024-5-15 10:52
GBK是中文编码吧

是将encoding='utf-8'改为encoding='GBK'就可以了吗?

kll545012 发表于 2024-5-15 10:57

1e3e 发表于 2024-5-15 10:55
是将encoding='utf-8'改为encoding='GBK'就可以了吗?

encoding='gbk'

我心飞翔1995 发表于 2024-5-15 11:06

编码要一致,写入时候你要编码为utf-8,查看时候也要用这个,UTF-8也能看中文,不一定非要GBK

Arcticlyc 发表于 2024-5-15 11:15

你用什么软件查看的,打开查看的时候是 utf8 编码吗?

1e3e 发表于 2024-5-15 11:21

Arcticlyc 发表于 2024-5-15 11:15
你用什么软件查看的,打开查看的时候是 utf8 编码吗?

用的win10的自带记事本,现在改成GBK试了一下,刚刚写入是正常的

yysyWang 发表于 2024-5-15 11:24

更换编码好像需要另存为,我经常直接改编码就很容易出现乱码

zhengsg5 发表于 2024-5-15 11:30

GBK应该可以

ceciliaaii 发表于 2024-5-15 12:01

用gb2312
页: [1] 2
查看完整版本: 经指定encoding='utf-8',为什么wj.txt写入中文后全是乱码