始终在输入上 解码 ,并在输出上 编码 。(为此应该使用方便的助记符:也许“ 当您进入室内时脱掉代码(外套) ”。)
输入时解码:您说数据库编码为“ UTF_8_bin”。您正在使用MySQL-Python吗?如果是这样,则可以use_unicode
在连接到数据库时设置该选项。然后,所有字符串都以Unicode格式从数据库中获取,因此您不必担心对其进行解码。
在输出上编码:您可以使用命令找出当前的字符编码(或Windows中称为“代码页”)chcp
。假设它是代码页1252。那你可以写
print text.encode('windows-1252')
如果您是使用MysqL-Python将字符串写回到另一个MysqL数据库,则不需要做任何特殊的事情:MysqL- Python声称“您始终可以编写Unicode字符串”(无论您use_unicode
在打开时是否指定了Unicode字符串)连接)。