HTML网站字符编码混乱

时间:2016-01-20 13:34:46

标签: php html encoding

我应该用斯洛伐克语的内容为客户创建网站(这意味着它包含特殊字符   像č,č,ó,ď,ť等。我正在使用数据编码为utf8_general_ci的MySQL数据库。这些数据由PHP提取   生成HTML代码并使用从数据库收到的文本数据填充它。我用过:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">   在生成的HTML的头部,

使用here

提到的步骤修改了php.ini 在PHP脚本本身

中称为header('Content-Type: text/html; charset=utf-8')。结果是所有特殊字符都是   显示为问号。

是否有任何有限的步骤列表可以保证所有内容都能正常显示?

编辑:

由于我已经找到了解决方案,我想分享帮助我处理UTF-8网站的步骤,如果有人也在努力的话。

1。)使用this文章中最佳答案中提到的步骤更改php.ini。

2。)在负责任的php脚本开始时调用header('Content-Type: text/html; charset=utf-8');

3.。)在执行任何查询之前,请致电mysqli_query($con,"SET NAMES utf8");(我在设置$con连接后立即在脚本顶部调用一次)。

4.。)将<meta http-equiv="Content-Type" content="text/html; charset=utf-8">放在HTML代码的头部。

5.。)将数据库的排序规则更改为任何utf8类型(我提到utf8_general_ci)。

希望它有所帮助。

2 个答案:

答案 0 :(得分:0)

我找到了类似的帖子here

  1. 确保数据库charset / coallition为UTF-8
  2. 在页面上插入这些俄语字符(表单,textarea),通过将Content-Type设置为text/html; charset=utf-8,确保编码为UTF-8。直接在表格输入中输入俄语文本。
  3. 在处理此表单的处理页面(将其插入数据库)中,请务必执行SET NAMES utf8,以便在插入数据之前将其存储为UTF-8 事先单独查询。
  4. 在视图中呈现数据库中的内容时,请确保Content-Typetext/html; charset=utf-8
  5. 确保内容类型 windows-1251或iso-8859-1 / latin1。确保数据库字符集/ coallition不是ISO-8859-1 / Latin1。

答案 1 :(得分:0)

确保您的数据已正确编码为UTF8 - 使用支持UTF8的终端/应用程序进行查询,并确认您可以正确查看重音字符。如果没有,您需要检查输入表单以正确设置数据编码。使用<form accept-charset="utf-8">但不要依赖它 - 如果需要,请在后端进行检查和转换。

还要确保所有文件也编码为UTF8:php文件,模板,javascript,html小部件。