从 CSV 解码 - 法语和西班牙语特殊字符
Decoding from CSV - French and Spanish special characters
我正在通过这样的报废过程对我的 CSV_table 进行编码:
with open("Raw_table.csv", 'w',encoding="utf-8") as outfile:
csv_writer = csv.writer(outfile, delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL,)
通常,当我想使用它们时,我会像这样使用 csv_parser:
def parse_csv(content, delimiter = ';'):
csv_data = []
for line in content.split('\n'):
csv_data.append( [x.strip() for x in line.split( delimiter )] ) # strips spaces also
return csv_data
list_raw=parse_csv(open('Raw_RC.csv','r',encoding="utf-8").read())
当我从美国、英国网站上删除时它有效。
在这里,我必须处理法语、西班牙语和德语的事情,当我尝试使用 parse_csv
从 csv 中读取时,它给了我这样的错误
csv_writer.writerow([k] + v)
ascii' codec can't decode byte 0xc3 in position 23: ordinal not in range(128)
我该如何解决这个问题?
补充问题:
- 我是否应该对 CSV 进行编码,以其他方式废弃网站(例如以不同方式设置 BeautifoulSoup),否则当它是德语或法语时?
- 这个编码问题可能与我从报废中得到的所有
\xa0
有关?我不这么认为,因为我能够解析英国、美国的 cdv,而那里也有很多。
感谢您为解决此问题所花费的每一字节! :)
使用 french/german/spanish 字符(以该语言编写的网站)时,请勿使用:encoding='utf-8'
,而应使用 encoding='ISO-8859-1'
。
这样写:
with open("Raw_table.csv", 'w',encoding="ISO-8859-1") as outfile:
csv_writer = csv.writer(outfile, delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL,)
阅读:
list_raw=parse_csv(open('Raw_RC.csv','r',encoding="ISO-8859-1").read())
\xa0 问题不相关。实际上,它只出现在 UTF-8 中。所以我的特定 french/german 排版与此无关。
要进一步了解此事(这不是问题的核心),请参阅 tripleee 建议的以下 link。
我正在通过这样的报废过程对我的 CSV_table 进行编码:
with open("Raw_table.csv", 'w',encoding="utf-8") as outfile:
csv_writer = csv.writer(outfile, delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL,)
通常,当我想使用它们时,我会像这样使用 csv_parser:
def parse_csv(content, delimiter = ';'):
csv_data = []
for line in content.split('\n'):
csv_data.append( [x.strip() for x in line.split( delimiter )] ) # strips spaces also
return csv_data
list_raw=parse_csv(open('Raw_RC.csv','r',encoding="utf-8").read())
当我从美国、英国网站上删除时它有效。
在这里,我必须处理法语、西班牙语和德语的事情,当我尝试使用 parse_csv
csv_writer.writerow([k] + v)
ascii' codec can't decode byte 0xc3 in position 23: ordinal not in range(128)
我该如何解决这个问题?
补充问题:
- 我是否应该对 CSV 进行编码,以其他方式废弃网站(例如以不同方式设置 BeautifoulSoup),否则当它是德语或法语时?
- 这个编码问题可能与我从报废中得到的所有
\xa0
有关?我不这么认为,因为我能够解析英国、美国的 cdv,而那里也有很多。
感谢您为解决此问题所花费的每一字节! :)
使用 french/german/spanish 字符(以该语言编写的网站)时,请勿使用:encoding='utf-8'
,而应使用 encoding='ISO-8859-1'
。
这样写:
with open("Raw_table.csv", 'w',encoding="ISO-8859-1") as outfile:
csv_writer = csv.writer(outfile, delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL,)
阅读:
list_raw=parse_csv(open('Raw_RC.csv','r',encoding="ISO-8859-1").read())
\xa0 问题不相关。实际上,它只出现在 UTF-8 中。所以我的特定 french/german 排版与此无关。 要进一步了解此事(这不是问题的核心),请参阅 tripleee 建议的以下 link。