提交表单时,来自文本区域的信息将保存到我的数据库中。有一种情况是下列字符出现在字段中。
例如。• Text
如果我使用Java从数据库中提取数据,它看起来像:�?� Text
我猜这和字符编码有关。在我的页面顶部添加这个标签<meta charset="UTF-8">
可以解决这个问题吗?或者在将值保存到数据库之前,我可以对文本区域进行清理吗?
这不是我自己知道如何复制的东西,我只是在监视数据库时看到的。关于这个问题的任何信息或启示都将非常感谢。
最佳答案
也许,您必须将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 ämerich"), ("50 €");
-------------------------
| test | ai |
=========================
| Max ämerich | 1 |
| 50 € | 2 |
=========================
现在尝试选择
从
table
中选择*test=“50欧元”;如果对值进行编码,则返回0行。