带有特殊字符和数据库的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_ci
、UTF8_unicode_ci
、UTF8_general_ci
、latin2_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方法怎么转换带有特殊字符的子字符串?