0

OS x 上の mysql 5.5 に問題があります。私は多言語プロジェクトに取り組んでおり、MyISAM テーブルを使用しています。デフォルトの文字セットは utf-8 で、デフォルトの照合は utf8_unicode_ci です。

イタリア語とドイツ語は問題ありませんが、スペイン語はそうではありません。私はデータを操作するためにpythonを使用しています。

事実上、特定のスペイン語の文字はすべてめちゃくちゃです。

Pythonシェルから:

>>>r
>>>['Blas P\xc3\xa9rez Gonz\xc3\xa1lez, 4']
>>>print[0]
>>>Blas Pérez González, 4
after saving it to database and fetching it again:
>>>r
>>>(u'Blas P\xc3\xa9rez Gonz\xc3\xa1lez, 4')
>>>print r[0]
>>>Blas Pérez González, 4

私は本当に混乱しています。明らかに同じユニコード文字列のようです!

ありがとう。

4

1 に答える 1

0

次のようなJavaスタイルのUnicodeエスケープを使用することをお勧めします

u'\\u0e4f\\u032f\\u0361\\u0e4f'.decode('unicode-escape')

同様の質問を参照してください。

これにより、文字列にユニコードが含まれていることが保証されます。

次に、実際の問題: mysql で試してくださいdescribe the_tableの定義でも、文字セットを設定できます。それを試して、テーブルが大丈夫かどうかを確認してください。


テスト用:データベースu'Blas P\\u00e9rez Gonz\\u00e1lez'.decode('unicode-escape')に保存します。次に、正しい Unicode 文字列が格納されていることがわかります。データベースに正しい db/table/field 定義がある場合、格納ではなく取得のみに問題がある可能性があります。

于 2012-09-22T20:36:50.517 に答える