2012-02-17 15 views
4

你好,我正在嘗試將一個字符串值存儲到MySQL,並且我使用了db.escape_string(),所以不能轉義特殊字符。 字符串是Python中的MySQL:UnicodeEncodeError:'ascii'

Lala*=#&%@<>_?!:;-'"/()¥¡¿ 

但是當我嘗試運行代碼,我得到這個錯誤:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 23-25: ordinal not in range(128)

我該怎麼辦?

回答

-2

錯誤說這裏有個字符不以ASCII存在(它們是unicode的,而不是) 嘗試使用:

newStr = u'Lala*=#&%@<>_?!:;-'"/()¥¡¿' 

它需要被宣佈爲Unicode,與u'something」代替。
這可能不適用於大多數python shell,因此請確保您的IDE可以支持unicode,並且您使用的文件在頂部有一個unicode聲明。

+0

如果該字符串存儲在另一個逃脫字符'從你的字符串無法編輯的變量?例如:字符串已經存儲在STR中。我怎麼添加你? – weyhei 2012-02-17 14:45:09

+0

'STR.decode('utf-8')'將使用適當的編碼將其更改爲「unicode」對象。 – FakeRainBrigand 2012-02-17 14:49:48

+0

嘗試過。但是又出現了另一個錯誤: 文件「/usr/lib/python2.7/encodings/utf_8.py」,第16行解碼 return codecs.utf_8_decode(input,errors,True) UnicodeEncodeError:'ascii'codec can 't編碼字符在位置23-25:序號不在範圍內(128) – weyhei 2012-02-17 14:58:59