为什么打印有趣的人物?unicode问题?

TIM*_*MEX 2 python django unicode encoding

用户输入了该单词

éclair
Run Code Online (Sandbox Code Playgroud)

进入搜索框.

Showing results 1 - 10 of about 140 for ?air. 
Run Code Online (Sandbox Code Playgroud)

为什么它会显示奇怪的问号?我正在使用Django来显示它:

Showing results 1 - 10 of about 140 for {{query|safe}}
Run Code Online (Sandbox Code Playgroud)

Pek*_*ica 8

这是一个编码问题.您的表单或输出页面很可能不是UTF-8编码的.

这篇文章是关于这个问题的非常好的解读:绝对最低每个软件开发人员绝对,必须知道关于Unicode和字符集(没有借口!)

你需要检查编码

  • 用户输入单词的HTML页面
  • 您用于输出单词的HTML页面
  • 你用来处理字符串的函数的多字节能力(虽然这可能不是Python中的问题)

如果搜索将应用于数据库,则需要检查数据库连接的编码以及表和列的编码.