提交表单时,来自文本区域的信息将保存到我的数据库中。有一种情况是下列字符出现在字段中。
例如。
• 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 &auml;merich"), ("50 &euro;");
-------------------------
| test             | ai |
=========================
| Max &auml;merich |  1 |
|   50 &euro;      |  2 |
=========================

现在尝试选择
table中选择*test=“50欧元”;
如果对值进行编码,则返回0行。

10-05 20:41