用户输入了
字样éclair
进入搜索框。
Showing results 1 - 10 of about 140 for �air.
为什么会出现奇怪的问号? 我正在使用Django来显示它:
Showing results 1 - 10 of about 140 for {{query|safe}}
答案 0 :(得分:8)
这是一个编码问题。很可能您的表单或输出页面不是UTF-8编码。
本文非常关于此问题的良好解读:The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
您需要检查
的编码如果搜索将应用于数据库,则需要检查数据库连接的编码以及表和列的编码。
答案 1 :(得分:1)
当您将未以UTF-8编码的数据解释为UTF-8编码时,这是结果。
解释器期望从单词éclair
的第一个字符的代码点开始,一个长度为3个字符的多字节编码字符,消耗接下来的两个字符但不能解码它(可能是无效的字节序列) 。在这种情况下,会显示 REPLACEMENT CHARACTER (U + FFFD)。
因此,在您的情况下,您只需要使用UTF-8对数据进行真正的编码。
答案 2 :(得分:0)
您正在使用错误的字符编码(字符集)来提供页面。检查您是否在所有应用程序中使用相同的编码(例如UTF-8)。这包括:
答案 3 :(得分:0)
检查浏览器编码设置也很好。
答案 4 :(得分:0)
我在上面的回复中说。其他一些事情来自我的头脑:
如果你正在使用例如MySQL数据库,然后使用:
创建数据库可能会很好创建数据库x字符集UTF8
您还可以查看:http://docs.djangoproject.com/en/dev/ref/settings/#default-charset