python unicode woes - 将cp1252字符串转换为unicode

时间:2014-01-09 10:44:06

标签: python unicode encoding ms-office cp1252

我认为我从根本上对不是ascii的字符集感到困惑。

我有一个python文件,我在顶部声明为# -*- coding: cp1252 -*-

例如,在我有question = "what is your borther’s name"的文件中。

type(question)

>> STR

question

>> '什么是你的borther \ xe2 \ x80 \ x99s名称'

此时我无法转换为unicode,大概是因为你不能从ASCII转到Unicode。

UnicodeDecodeError:'ascii'编解码器无法解码位置20中的字节0xe2:序数不在范围内(128)

如果我开始声明为unicode:

question = "what is your borther’s name"

>>你的borther是什么名字'

如何获得“你的borther的名字是什么”?或者只是python解释器显示unicode字符串的方式,它实际上会在我将其传递给unicode感知应用程序(在本例中为Office)时正确编码?

我需要保留特殊字符,但我仍然需要使用Levenshtein库(pip install python-Levenshtein)进行字符串比较。

Levenshtein.ratio对其两个参数都采用str或unicode,但没有混合。

1 个答案:

答案 0 :(得分:0)

  

我有一个纯文本文件,我在顶部声明为# -*- coding: cp1252 -*-

这没有任何作用。

with codecs.open(..., encoding='cp1252') as fp:
   ...