Textarea值保存到数据库奇怪的字符

时间:2013-12-11 21:11:37

标签: javascript jquery html database character-encoding

提交表单时,文本区域中的信息将保存到我的数据库中。有一种情况是在该字段中显示以下字符。

E.g。

• Text

如果我使用java从数据库中提取数据,它看起来像:

�?� Text

我猜它与字符编码有关。将此标记 <meta charset="UTF-8">添加到我的页面顶部会修复它吗?或者,在将值保存到数据库之前,我可以使用文本区域进行清理吗?

这不是我知道如何自己重现我只是在监视数据库时看到它。任何有关该主题的信息或启示都将受到高度赞赏。

1 个答案:

答案 0 :(得分:2)

也许,你必须将MySQL连接设置为UTF-8 例如PHP / MySQLi和MySQL:

$utf8_mysqli = $mysqli ->set_charset("utf8");

快速举例说明为什么你不应该用htmlentities()等编码:

无编码:

> INSERT INTO `table` (test) VALUES ("Max Ämerich"), ("50 €");
--------------------
| test        | ai |
====================
| Max Ämerich |  1 |
|   50 €      |  2 |
====================

使用编码

> INSERT INTO `table` (test) VALUES ("Max &auml;merich"), ("50 &euro;");
-------------------------
| test             | ai |
=========================
| Max &auml;merich |  1 |
|   50 &euro;      |  2 |
=========================

现在尝试选择

  

SELECT * FROM table WHERE test =&#34; 50€&#34;;

如果值已编码,则返回0行。