数据库插入问题...(字符编码错误)PHP/MYSQL

3

我有一个表单,要将其提交到mysql数据库中。 数据库设置为UTF-8_GENERAL,并且行使用相同的字符编码。

但是当我在文本中插入"ő"或"ű"时,这些字符之后就没有提交任何内容。 (例如:"This is a nice ű day." 它只插入了这个字符串到数据库: "This is a nice")

在提交到数据库之前,表单的验证页面具有 mysql_real_escape_string(); strip_tags(); 的功能。

如何解决这个问题? 非常感谢您的帮助...


1
你的查询在执行之前是什么样子的?可能是 PHP 中的某些东西在它到达数据库之前搞乱了字符。 - Marc B
你检查过HTML是否使用UTF8编码,并使用charset meta tag吗? - ianbarker
我已经检查了HTML。它也使用UTF-8。 - Akos
1个回答

3

很好,你正在使用mysql_real_escape_string()!

我认为问题可能在于某些绕过的表单页面 -> header文件 -> 核心文件 -> mysql宏文件 -> 插入到数据库等等。如果您当然使用了一些CMS方法。

所以基本上:

  1. 确保您在mysql中的所有表和单元格都是UTF8
  2. 将此添加到mysql宏或在创建mysql连接后立即执行:mysql_query("SET NAMES utf8");
  3. 将此添加到核心文件或php页面顶部:Header("Content-Type: text/html; charset=UTF-8");
  4. 当然还有在html/template文件中设置编码的meta标记。

如果您已经掌握了这些步骤,那么应该已经解决了问题。如果没有,则至少已经排除了许多可能的问题:)


谢谢...我忘记了最基本的步骤 ;) - Akos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接