【问题标题】:Unable to save UTF8 to CSV in Python无法在 Python 中将 UTF8 保存为 CSV
【发布时间】:2016-02-16 10:57:29
【问题描述】:

我正在尝试将一些越南语文本(在对其执行一些操作之后)保存到 csv 文件。我能够将相同的文本保存到 MySQL 中而没有错误,但保存到 csv 会产生一些奇怪的输出。

import csv 

test = [('Trưởng phòng Marketing và Phát triển kinh doanh',), ('Nhân viên Nhân sự',), ('Nhân viên Hành chính',)]

with open('results.csv', 'a', newline = '', encoding = 'utf8') as csvfile:
    csv_writer = csv.writer(csvfile)  
    csv_writer.writerows(test)

csv 输出

Trưởng phòng Marketing và Phát triển kinh doanh
Nhân viên Nhân sự
Nhân viên Hành chính

我已尝试解码和编码,但仍无法正确保存。这是否可以将 UTF-8 文本正确保存到 csv 或者这是 csv 本身的问题?

【问题讨论】:

  • 您是如何/在哪里查看该输出的?
  • 另外,Python 2 还是 3?源代码是否保存为 UTF-8?
  • 很确定它是 Python 3,否则 open() 中不会有 encoding 参数。
  • @deceze 它是 Python 3.4,当您打开文件时,csv 输出是 csv 文件中的输出。
  • “打开”如何?!很可能打开文件的应用根本不会将文件视为 UTF-8。

标签: python csv python-3.x utf-8


【解决方案1】:

您所看到的 UTF-8:

  • ư 编码为0xC6 0xB0
  • 您正在使用不同的编码打开 CSV 文件;看起来像Windows-1252,其中0xC6 0xB0 表示为ư)。

你是如何打开 CSV 文件的?

【讨论】:

  • OK 我尝试在 Notepad+ 中打开 csv 文件,文本看起来不错。尽管 csv 文件将编码显示为 UTF-8,但它看起来确实是 csv 文件本身的问题。感谢您验证文本是否为 UTF-8,因为我花了一整天的时间试图解决这个问题,认为这是我的代码有问题。
猜你喜欢
  • 2013-12-09
  • 2019-03-06
  • 2020-12-09
  • 1970-01-01
  • 2016-03-12
  • 2021-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多