首页  >  文章  >  数据库  >  在 Java Web 应用程序中保存数据时,为什么我的字符被替换为 \'?\'?

在 Java Web 应用程序中保存数据时,为什么我的字符被替换为 \'?\'?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-02 11:31:30366浏览

Why are my characters replaced with '?' when saving data in my Java web application?

Java Web 应用程序中解决的 JDBC 字符编码问题

在部署在 GlassFish 3 上并利用 JPA (EclipseLink) 和MySQL数据库,用户通过update()方法保存数据时遇到编码差异。字符串字段中的字符被替换为“?”数据库插入时的符号。

尽管将服务器、网页和数据库配置为使用 UTF-8,问题仍然存在。虽然数据在后续页面上正确显示,并且在 NetBeans 调试期间显得有效,但对调试转换的准确性仍然存在疑问。

JDBC 配置罪魁祸首

跟踪根本原因是,我们发现在这种情况下控制字符编码的是 JDBC,而不是 JPA。通过将以下参数附加到 JDBC 连接 URL:

characterEncoding=utf8

编码问题已解决。修改后的连接URL确保为与MySQL数据库的JDBC通信显式定义UTF-8字符编码,解决字符串字段的完整性问题。

以上是在 Java Web 应用程序中保存数据时,为什么我的字符被替换为 \'?\'?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn