python - 处理坏字符 UTF 8 python
问题描述
如何打印和读取没有坏字符的编码 utf-8 文件,我使用的是 pycharm 和 python 3.7
# -*- coding: utf-8 -*-
import pandas as pd
import sys
sys.stdout.reconfigure(encoding='utf-8')
place = pd.read_csv('country.csv', encoding='utf-8', chunksize=13000000, error_bad_lines=False, squeeze= True)
for chunk in place:
place_list = chunk['name'].tolist()
print(u"{}".format(place_list))
国家.csv
name,
T’Kareseskop
Gröll Seamount
Pinzón Knoll
Pinar del Río Knoll
Piñones Canyon
输出:
T’Kareseskop
Gröll Seamount
Pinzón Knoll
Pinar del RÃo Knoll
Piñones Canyon
预期输出:
T’Kareseskop
Gröll Seamount
Pinzón Knoll
Pinar del Río Knoll
Piñones Canyon
我正在使用块,因为country.csv
它是一个大文件
解决方案
调用sys.stdout.reconfigure(encoding='utf-8')
不会重新配置您的终端程序(“cmd”窗口),它只会强制 Python 输出 utf-8,即使终端配置不同。
如果当你删除这个调用时,你没有得到正确的字符,那是因为 Python 没有自动找到正确的终端编码。但显然,它不是 utf-8。
也许,比尝试调整古老的 Windows 终端更好的是,安装一个比神秘的“cmd”更好的终端 - 检查这个:https ://cmder.net/ (我想是 Windows,因为所有 Linux 发行版和 Mac操作系统默认使用 utf-8 好几年了)
推荐阅读
- r - 将 R 连接到 Power BI XMLA 端点
- javascript - 显示名字的首字母和完整的姓氏
- reactjs - 未捕获的类型错误:在设置状态时无法读取未定义的属性(读取“长度”)
- c++ - 在进度监控和更新进度条的上下文中
- c# - 如何创建 Rider 插件操作
- elasticsearch - 多个术语过滤器不起作用 - 弹性搜索
- palantir-foundry - 如何通过 Palantir Foundry 中的 slate 识别弹性搜索服务 API 的支持数据集名称?
- scala - Scala 中的隐式类:性能和良好实践
- flutter - Flutter 构建应用程序包
- javascript - 复选框始终显示未定义。无法获得 .checked 的功能