“对不起,我希望这不奇怪或任何事情,”
如何修复此编码?
答案 0 :(得分:4)
您遇到的是数据以一种编码方式写入并被解释为另一种编码的结果。你需要确保你要求输入的格式与你期望的格式相同。我建议只要坚持使用UTF-8,除非你需要避免多字节字符,在这种情况下你可能想看看强制ASCII。
确保告诉PHP在内部使用UTF-8:
ini_set('default_charset', 'UTF-8');
并确保您告诉浏览器期望在标题中使用UTF-8编码的文本...
header("Content-Type:text/html; charset=UTF-8");
...并在您的元标记中(下面的html5)...
<meta charset="utf-8">
设置此项将告诉浏览器在提交表单时向您发送UTF-8编码的内容,并且它还会将您发回的结果解释为UTF-8。
您还应该确保数据库存储和连接编码都是UTF-8。通常只要它只是一个愚蠢的数据存储(即它不会以任何方式操纵或解释数据)就无所谓了,但最好还是把它放好,而不是以后遇到问题。 / p>
答案 1 :(得分:3)
iconv
函数通常能够处理这种编码问题。
答案 2 :(得分:1)
答案 3 :(得分:1)
你的php设置是什么?
您可以将php配置为对字符串进行编码,在大多数情况下,建议使用utf8,并且您的html页面中必须包含Content-Type标记
答案 4 :(得分:0)
另外,如果我可以添加上述那些点,如果要将数据保存到数据库表,那么表和列(也可能是数据库本身)应该有utf8_general_ci,以便它可以处理多字节字符。
我还会在运行任何查询之前发出此查询设置名称'utf8'。
答案 5 :(得分:0)
看起来正确的解决方案是mb_convert_encoding()
string mb_convert_encoding (string $ str,string $ to_encoding [,mixed $ from_encoding])
将字符串str的字符编码从to_encoding转换为to_encoding。