带有特殊字符和数据库的java程序

Posted

技术标签:

【中文标题】带有特殊字符和数据库的java程序【英文标题】:java program with special characters and database 【发布时间】:2012-07-26 15:39:09 【问题描述】:

首先我知道这个问题是已知的,并且有很多答案,但我的有点不同或不寻常。

所以,我正在使用Eclipse SDK Version: 3.7.1,并且我正在开发可与数据库一起使用的 java 应用程序 (JRE 1.7)。

由于应用程序使用 克罗地亚语,我遇到了特殊字符问题 - čćđ 和将它们插入 DB(mysql dbms,嵌入 xampp)。

但是,我对编码的东西知之甚少,我尝试将 DB 设置为 cp1250_croatian_ciUTF8_unicode_ciUTF8_general_cilatin2_croatian_ci,但遗憾的是我对每一个都有同样的问题。 (每次连接到 DB 后,SET NAMES utf8(或类似的东西)是强制性的吗?)

另外,我想指出,在 phpMyAdmin 中插入 (č,ć,đ) 可以正常工作。

所以如果我想插入 DB 字符 č,ć,đ 它们表示为 ? .所以基本上这意味着编码或字符集或其他东西是问题。

我也在使用 JDBC 驱动程序:mysql-connector-java-5.1.18-bin 来自:docs

我想提一下,我没有遇到问题,而 DB 托管在 godaddy.com 服务器上

此外,项目文本编码(在 Eclipse 中)设置为“继承自容器 (CP1250)”,我也尝试使用 UTF-8,但这对我没有帮助。

【问题讨论】:

【参考方案1】:

我认为您可以执行以下操作 1 首先你应该将mysql编码设置为utf-8; 连接数据库时需要 2 秒,您应该按如下方式设置连接属性 你可以试试这个jdbc:mysql://ip:3306/yourDBName?useUnicode=true&characterEncode=UTF-8

我认为当您使用 jdbc 连接时,您可能丢失了useUnicode=true&characterEncode=UTF-8

【讨论】:

@chunxiao 但这对我不起作用,我已经在我的应用程序中通过调试对源进行了三次检查,但斯洛文尼亚字母 Č 仍然转换为 当我插入/更改记录时。您还有其他想法吗?

以上是关于带有特殊字符和数据库的java程序的主要内容,如果未能解决你的问题,请参考以下文章

String的replace方法怎么转换带有特殊字符的子字符串?

Azure SQL 处理特殊字符

如何使用 jQuery DataTables 插件过滤带有特殊字符的结果?

使用带有特殊字符的正则表达式进行数字格式化

C++ DLL 注入:带有特殊字符的路径

java如何转换富文本框中的中文编码格式,且把标签变成特殊字符