1

尝试插入我的 rt 索引时出现以下错误:

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

它应该使用 utf-8,而不是 latin-1。在我的 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 回答