gpt4 book ai didi

python - 为什么我的 urllib.quote 中的 python 编码是 Win-1252,而不是 CSV 文件的 UTF-8?

转载 作者:行者123 更新时间:2023-12-01 04:47:40 26 4
gpt4 key购买 nike

我一直在尝试对我的输入进行 URL 编码,以便为 API 请求做好准备,并且 urllib.quote 非常适合字符串,并按照 utf-8 的方式对其进行编码,但是当它来自 csv 时文件,它以 API 请求无法识别的方式对其进行编码。

# -*- coding: utf-8 -*-
import urllib
r = "Handøl Sweden"
print urllib.quote(r)

这将返回正确的格式:

Hand%C3%B8l%20Sweden

鉴于:

# -*- coding: utf-8 -*-

import urllib
import csv

CityList = []

with open ('SiteValidate4.csv','rb') as csvfile:
CityData = csv.reader(csvfile)
for row in CityData:
CityList.append(row[12])
r = row[12]
print r
print urllib.quote(r)

这将返回:

Handøl Sweden
Hand%F8l%20Sweden

是否有任何修复可以将 .csv 文件的输入编码为正确的格式?

最佳答案

您的 CSV 文件已编码为 CP-1252,您必须将其重新编码为 UTF-8:

r = r.decode('cp1252').encode('utf8')

您的普通 Python 代码使用的是 UTF-8 字节;前提是您的代码编辑器确实将数据保存为 UTF-8,正如您的 coding: utf-8 header 所暗示的那样。

只需输入 PEP 263 Python 源文件中的 header 并不会神奇地使您从文件中读取的所有数据也成为 UTF-8 数据;它仍然需要使用该文件的正确编解码器进行解码

关于python - 为什么我的 urllib.quote 中的 python 编码是 Win-1252,而不是 CSV 文件的 UTF-8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29087812/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com