2015-01-15 43 views
0

識別®(註冊商標標誌)如果我嘗試運行它與這一行Python文件:pymysql不上膩子

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

膩子給我的錯誤:

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服務器時。

回答

0

unicode錯誤? (假設蟒2)

的gname = 「席德梅爾的文明」 + unichr(174)+ 「IV」「

然後

gname.encode( 'UTF-8')

其給 「席德梅爾的文明\ XC2 \西航IV」

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

+0

我不明白你的意思,但要明確Python可以讀取它只是科幻東北。就像我將整個python腳本設置爲「print®」,那麼它在Putty中顯示®。 –

+0

對不起,我沒有解釋,它正確的終端編碼cuasing,因爲你還沒有設置它。所以mystring.encode('utf-8')http://stackoverflow.com/questions/492483/setting-the-correct-encoding-when-piping-stdout-in-python http://stackoverflow.com/questions/ 6396659 /如何從python腳本中編寫終端代碼 – lxx

+0

哇從該鏈接中運行的東西,謝謝 –