首页 > 解决方案 > 处理坏字符 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它是一个大文件

标签: pythonpandascsvencodingutf-8

解决方案


调用sys.stdout.reconfigure(encoding='utf-8')不会重新配置您的终端程序(“cmd”窗口),它只会强制 Python 输出 utf-8,即使终端配置不同。

如果当你删除这个调用时,你没有得到正确的字符,那是因为 Python 没有自动找到正确的终端编码。但显然,它不是 utf-8。

也许,比尝试调整古老的 Windows 终端更好的是,安装一个比神秘的“cmd”更好的终端 - 检查这个:https ://cmder.net/ (我想是 Windows,因为所有 Linux 发行版和 Mac操作系统默认使用 utf-8 好几年了)


推荐阅读