将Unicode转换为UTF-8 Python
问题内容:
我正在使用一个数据库,其中遍布散乱的字符,例如:我需要从数据库中获取此文件,将其转换为UTF-8,然后使用python将其导入到其他数据库中。当打印到Windows命令提示符时,这些字符如下所示:\
xe2 \ u20ac \ u2122。我尝试了.decode()、. encode()和unicode()的各种组合来转换数据,但是Im确实卡住了。
问题答案:
始终在输入上 解码 ,并在输出上 编码 。(为此应该使用方便的助记符:也许“ 当您进入室内时脱掉代码(外套) ”。)
输入时解码:您说数据库编码为“ UTF_8_bin”。您正在使用MySQL-Python吗?如果是这样,则可以use_unicode
在连接到数据库时设置该选项。然后,所有字符串都以Unicode格式从数据库中获取,因此您不必担心对其进行解码。
在输出上编码:您可以使用命令找出当前的字符编码(或Windows中称为“代码页”)chcp
。假设它是代码页1252。那你可以写
print text.encode('windows-1252')
生成可以从Windows命令行读取的内容。
如果您是使用MySQL-Python将字符串写回到另一个MySQL数据库,则不需要做任何特殊的事情:MySQL-
Python声称“您始终可以编写Unicode字符串”(无论您use_unicode
在打开时是否指定了Unicode字符串)连接)。