pymysql无法识别PuTTY上的®(注册商标符号)

时间:2015-01-15 05:31:34

标签: python sql putty pymysql

如果我尝试在其中运行带有此行的python文件:

cursor.execute("SELECT GameName FROM GamesTable WHERE GameName = 'Sid Meier's Civilization® IV'")

PuTTY给了我错误:

pymysql.err.ProgrammingError: (1064, u"You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right syntax to use near 's
Civilization\xae IV'' at line 1")

所以它显然无法读取®符号。

我一直在搜索,人们说要确保远程字符集是UTF-8,它就是。

此外,PuTTY似乎处理符号很好 - 如果我只是写print "®"然后它正确打印符号。只有在尝试使用pymysql到达sql server时才会出现问题。

1 个答案:

答案 0 :(得分:0)

unicode错误? (假设是python 2)

gname =" Sid Meier'文明" + unichr(174)+" IV'"

然后

gname.encode(' UTF-8&#39)

给出了 " Sid Meier的文明\ xc2 \ xae IV"

https://docs.python.org/2/howto/unicode.html