1

rt インデックスに挿入しようとすると、次のエラーが表示されます。

'latin-1' codec can't encode character u'\u2019' in position 126: ordinal not in range(256)

latin-1 ではなく、utf-8 を使用する必要があります。私のconfファイルで指定した:

index my_index
{
        type = rt
        path = /path/my_index
        rt_field = content

        charset_type = utf-8
}

utf-8 のデータベースから挿入する値を選択しています。生のSQL(APIなし)を使用して、Pythonから挿入しています:

cursor_sphinx.execute("replace into my_index (id, content ) values (%s,%s)", (id, content))

どうすればこれを回避できますか?

4

1 に答える 1

1

まあ、 content.encode("utf-8") として挿入するとうまくいきましたが、最初のデータベースが utf-8 で、.py ファイルが #coding=UTF-8 を指定している場合になぜこれが必要なのかわかりません

于 2013-08-08T12:21:42.550 に答える