如何在Python 2中删除4字节的unicode符号?

时间:2015-10-01 09:38:37

标签: python mysql unicode

将数据库添加到数据库后,我在一个字符串中遇到了一些问题。

我有“222平方米的空间”字符串。如果我通过mysqldb模块将它写入mysql,我在表中得到“空间222m²”,这没关系。但是当我从表中得到这个值时,在解码之后我得到类似“空间222 m \ eb000 \ b1111”的东西,这不是“空间222m²”。

在unicode中添加到数据库之前的这个字符串看起来像“space 222 m \ xcb”,但是在打印它显示正确时,数据库中的字符串会显示unicode代码,从而产生错误。

  • MySQL charset - utf-8
  • 数据库整理 - utf8_general_ci
  • 源字符串 - utf-8

我遇到的问题是将字符串与特殊字符集成,而其他字符串没有

## db it's mongodb
st=db.objects.find()[0]['value']
string=st.encode('utf-8') # can be with m² or not. Encoding identical
some_string=u"some"
x="%s %s"%(string,some_string)

如果字符串不包含特殊符号都很好, 但如果字符串包含特殊符号,我会得到UnicodeDecodeError

Python版本:

在win32上使用Python 2.7.10(默认,2015年5月23日,09:40:32)[MSC v.1500 32位(英特尔)]

1 个答案:

答案 0 :(得分:0)

关于UTF-8的说明: UTF-8中有不同的ISO字符集,因此在将数据从UI发送到数据库时请记住这一点。看看本地化和字符编码\集,这将有助于你理解unicode \ ascii。

我不知道您的字符串的确切映射,但要回答您的问题,请尝试get_string().encode('utf-8')get_string().decode('utf-8')