中文文本utf-8编码无法识别问题

python写入文件时,使用encoding=‘utf-8’格式编码生成的csv文件中文乱码,如何解决?

一、问题描述

使用‘utf-8’编码写入了某个excel/csv等表格文件,却发现直接使用excel应用程序打开时无法看懂,出现中文乱码得情况。不过,用记事本、notepad++等普通的文本编译器却可读。

二、产生原因

excel软件对于utf-8编程方式只支持有BOM格式的。但是,python编码方式为utf-8是无BOM格式的。因此,当你打开时会出现中文乱码问题。

三、解决方法

把utf-8格式改成utf-8_sig即可解决。因为utf-8_sig格式代表着有BOM格式的utf-8的编程,excel就可以正常显示中文了。

代码展示:

col = "请使用utf-8_sig格式编码。"
with open(file, 'w', encoding='utf-8_sig', newline='') as f:
        csv_writer = csv.writer(f)
        csv_writer.writerows(col)
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
`utf-8-sig` 是一种带有 BOM(字节顺序标记)的 UTF-8 编码方式,BOM 是一个特殊的字节序列,用于指示文本文件中使用的编码方式。在某些应用程序中,BOM 可以帮助正确识别文本文件的编码方式。 在 Python 中,您可以使用 `utf-8-sig` 编码来打开和写入带有 BOM 的 UTF-8 文本文件。以下是一些示例代码,演示如何使用 `utf-8-sig` 编码来读取和写入文本文件: ```python # 读取带有 BOM 的 UTF-8 文本文件 with open("file.txt", "r", encoding="utf-8-sig") as f: content = f.read() print(content) # 写入带有 BOM 的 UTF-8 文本文件 with open("file.txt", "w", encoding="utf-8-sig") as f: f.write("Hello, world!") ``` 在这个示例中,我们首先使用 `open` 函数打开一个名为 `file.txt` 的文本文件,并指定 `encoding` 参数为 `utf-8-sig`。这将告诉 Python 使用带有 BOM 的 UTF-8 编码方式来读取或写入文件。 在第一个 `with` 语句中,我们使用 `read` 方法读取文件内容,并将其存储在变量 `content` 中。由于文件使用带有 BOM 的 UTF-8 编码方式,因此 Python 可以正确地解析文件内容,并将其作为 Unicode 字符串返回。在第二个 `with` 语句中,我们使用 `write` 方法将字符串 "Hello, world!" 写入文件。由于我们指定了 `utf-8-sig` 编码方式,因此 Python 将自动在文件开头添加一个 BOM。 需要注意的是,并非所有的文本编辑器都支持带有 BOM 的 UTF-8 编码方式。如果您在使用带有 BOM 的 UTF-8 编码方式时遇到问题,请尝试使用不带 BOM 的 UTF-8 编码方式或其他编码方式。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zz_Lambda

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值