HTML网站字符编码混乱


HTML Website Character Encoding Mess

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

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

修改后的 PHP.ini使用此处提到的步骤,

在PHP脚本本身称为header('Content-Type: text/html; charset=utf-8')。结果是所有特殊字符都是 像问号一样显示。

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

编辑:

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

1.) 使用本文最佳答案中提到的步骤更改 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)。

希望对您有所帮助。

我在这里找到了类似的帖子

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

确保内容类型不是 windows-1251 或 iso-8859-1/latin1。确保数据库字符集/合并不是 ISO-8859-1/Latin1。

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

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