2012-02-17 3 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)

私は何をすべき?

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

それは代わりに「u'somethingで、Unicodeのように宣言する必要があります

答えて

-2

エラーが(彼らは代わりにユニコードある)を試してみてください ASCIIには存在しません。ここに文字があることを述べています。
これはほとんどのPythonシェルではうまくいかないので、IDEがUnicodeをサポートできること、そして使用しているファイルが一番上にUnicode宣言を持っていることを確認してください。

+0

を避けるために、あなたの文字列から文字を「エスケープしましたので、ご注意ください編集できない変数?例:stringはすでにSTRに格納されています。どうすれば私を追加できますか? – weyhei

+0

'STR.decode( 'utf-8')'は適切なエンコーディングで 'unicode'オブジェクトに変更します。 – FakeRainBrigand

+0

はそれを試しました。しかし、別のエラーが発生しました: ファイル "/usr/lib/python2.7/encodings/utf_8.py"、16行目のデコードで return codecs.utf_8_decode(input、errors、True) UnicodeEncodeError: 'ascii'コーデックが可能です23-25桁の文字をエンコードしない:序数が範囲外(128) – weyhei

0

例えばhttp://pypi.python.org/pypi/Unidecode/0.04.1

をお試しください:

from unidecode import unidecode 

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

私は、文字列を別のに格納されている場合は何にSyntaxError