我觉得在这里试图用Python 2.5改变编码
我有XML响应,我编码为UTF-8:response.encode('utf-8')
。这很好,但使用此信息的程序不喜欢这种编码,我必须将其转换为其他代码页。真实的例子是我使用ghostscript python模块将pdfmark数据嵌入到PDF文件中 - 最终结果是Acrobat中的字符错误。
我在'utf-8'和'latin-1'之间使用.encode()
和.decode()
进行了多次组合,这让我发疯,因为我无法输出正确的结果。
如果我将字符串输出到.encode('utf-8')
的文件,然后将此文件从UTF-8转换为CP1252(也称为latin-1),即 iconv.exe 并嵌入数据一切都很好。
基本上有人可以帮我转换,即字符á,这是UTF-8编码为十六进制:C3 A1
到latin-1为十六进制:E1
?
提前致谢
答案 0 :(得分:19)
而不是.encode('utf-8')
,请使用.encode('latin-1')
。
答案 1 :(得分:5)
data="UTF-8 data"
udata=data.decode("utf-8")
data=udata.encode("latin-1","ignore")
应该这样做。
答案 2 :(得分:3)
您能否提供有关您尝试做的更多详情?通常,如果您有一个unicode字符串,则可以使用encode将其转换为具有适当编码的字符串。例如:
>>> a = u"\u00E1"
>>> type(a)
<type 'unicode'>
>>> a.encode('utf-8')
'\xc3\xa1'
>>> a.encode('latin-1')
'\xe1'
答案 3 :(得分:0)
如果之前的答案无法解决您的问题,请检查无法正确打印/转换的数据来源。
在我的情况下,我使用json.load
通过不使用encoding="utf-8"
错误地从文件中读取数据。尝试将结果字符串解码/编码为latin-1
只是没有帮助......