【问题标题】:UTF-8 stored as question marks in MySQL DBUTF-8 在 MySQL DB 中存储为问号
【发布时间】:2018-08-31 07:33:03
【问题描述】:

我有一个 MySQL 数据库,它创建为 utf8mb4(带有排序规则 utf8mb4_collat​​e_ci),我通过一些 JSP 页面访问它。 JSP 页面均以 UTF-8 格式存储,且均包含以下标签:

<%@ page contentType="text/html; charset=utf-8" %>

<meta http-equiv="Content-type" content="text/html; charset=utf-8">

使用 MySQL Workbench,我可以在 DB 中存储非 ASCII 文本并显示它,在 JSP 页面中,我可以正确显示存储的文本。但是,当我尝试从 JSP 页面插入包含非 ASCII 文本的新行时,它们最终被存储为“??????”在数据库中(无论是从 JSP 还是从 MySQL Workbench 中选择都显示为这样)。如果我将插入的文本显示为 JSP 页面的一部分,它会在我的浏览器中正确显示。

我唯一能想到的是 JSP 到 MySQL 的网络连接不知何故使用了错误的编码,但我完全不知道如何或为什么。

欢迎任何建议!

【问题讨论】:

标签: mysql jsp utf-8


【解决方案1】:

确实是 JSP-to-MySQL 编码存在问题。使用“显示变量”显示“character_set_server”是有罪的一方,被设置为“latin1”而不是“utf8”。 Madhur Bhaiya 的评论帮助我找到了一些指向其他页面的链接,这些链接建议将“?characterEncoding = utf8”添加到连接字符串以覆盖服务器的默认连接编码。这解决了问题。谢谢,马杜尔!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多