Python 解析区域字符串语言

Python 解析区域字符串语言,python,encoding,Python,Encoding,我正在使用python进行exel解析。 到目前为止,我一直在使用英语,但当我遇到地区语言时,我会犯错误 例如: IR05 měsíční (monthly) 它给我的错误是 UnicodeEncodeError: 'ascii' codec can't encode character u'\u011b' in position 6: ordinal not in range(128) 我如何解析它,以及如何在输出文件中再次使用相同的语言编写 我的代码: for j in val:

我正在使用python进行exel解析。
到目前为止,我一直在使用英语,但当我遇到地区语言时,我会犯错误

例如:

IR05 měsíční (monthly)
它给我的错误是

UnicodeEncodeError: 'ascii' codec can't encode character u'\u011b' in position 6: ordinal not in range(128)
我如何解析它,以及如何在输出文件中再次使用相同的语言编写

我的代码:

for j in val:
    print 'j is - ', j
    str(j).replace("'", "")

replace语句出错。

错误可能是str(j)引起的, 试试这个:

for j in val:
    print 'j is - ', j
    j.replace("'", "")

错误可能由str(j)引起, 试试这个:

for j in val:
    print 'j is - ', j
    j.replace("'", "")
这是原始字符串(以utf8编码)的unicode版本

现在,您可以将其与您解码的其他字符串(来自文件)进行比较(来自utf8或latin2或其他格式),并可以进行比较

>>> 'IR05 m\xecs\xed\xe8n\xed (monthly)'.decode('latin2')
u'IR05 m\u011bs\xed\u010dn\xed (monthly)'
现在,您可以比较两个unicode字符串:

>>> s_utf8 = "IR05 měsíční (monthly)"
>>> s_latin2 = 'IR05 m\xecs\xed\xe8n\xed (monthly)'
>>> s_utf8.decode('utf8') == s_latin2.decode('latin2')
True
要将字符串写入文件,请再次对其进行编码:

>>> s = s_utf8.decode('utf8')

>>> filehandle.write(s.encode('utf8'))
这是原始字符串(以utf8编码)的unicode版本

现在,您可以将其与您解码的其他字符串(来自文件)进行比较(来自utf8或latin2或其他格式),并可以进行比较

>>> 'IR05 m\xecs\xed\xe8n\xed (monthly)'.decode('latin2')
u'IR05 m\u011bs\xed\u010dn\xed (monthly)'
现在,您可以比较两个unicode字符串:

>>> s_utf8 = "IR05 měsíční (monthly)"
>>> s_latin2 = 'IR05 m\xecs\xed\xe8n\xed (monthly)'
>>> s_utf8.decode('utf8') == s_latin2.decode('latin2')
True
要将字符串写入文件,请再次对其进行编码:

>>> s = s_utf8.decode('utf8')

>>> filehandle.write(s.encode('utf8'))

请向我们展示您编写的导致该错误的代码。请向我们展示您编写的导致该错误的代码。
j.replace(“,”)
j
的更新版本返回到…nirvana。
j.replace(“,”)
j
的更新版本返回到…nirvana。实际上我想比较“IR05 měsíní(月刊)”和另一个写有“IR05 měsíční(月刊)”的文件。当我解码它时,它会给我另一种格式。我将如何检查该格式&如果它匹配,那么我必须创建一个文件并写“IR05 měsíní(月刊)”在那个文件里谢谢你的回答。你能告诉我一件事吗?如果我解码了那个声明,现在我又想把“IR05 měsíční(每月)”写进一个文件。我怎么能写呢?啊哈,所以它会在文件里再次写“IR05 měsíční(每月)”而不是实际上我想比较的“IR05 m\u011bs\xed\u010dn\xed(每月)”“IR05 měsční(月刊)”和另一个写有“IR05 měsční(月刊)”的文件。当我解码它时,它会给我另一种格式。我将如何检查该格式&如果它匹配,那么我必须创建一个文件并写“IR05 měsční(月刊)”“在那个文件里谢谢你的回答。你能告诉我一件事吗?如果我解码了那个声明,现在我想把“IR05 měsční(每月)”写进一个文件。我怎么能写呢?啊哈,所以它会在文件里再次写“IR05 měsční(每月)”而不是“IR05 m\u011bs\xed\u010dn\xed(每月)”