如何在windows os

时间:2015-09-17 11:07:44

标签: java mysql hibernate

我正在与巴西客户打交道,其中数据是葡萄牙语。

我的应用程序负责通过Web服务调用读取数据并将其存储在我们的数据库中。我目前面临的问题是葡萄牙语字符未被识别,并作为特殊字符存储在我的数据库中。

我正在使用MySQL数据库,所有表都配置为collat​​ion UTF-8。我尝试手动插入葡萄牙语字符到我的数据库,它工作。所以我怀疑它将葡萄牙语字符转换为特殊字符的java。

另外,我的应用程序正在使用Hibernate进行数据库操作。

我能够像在日志中看到的那样获取角色,并且在尝试将数据存储在数据库中时会出现问题。

Eg: Original characters: Gerãt
    Database characters: Gerãt

我需要对数据库进行哪些配置或设置或更改才能使用葡萄牙语捕获数据?

3 个答案:

答案 0 :(得分:0)

可能不是数据库问题,而是应用程序配置问题。

很少有人帮忙:

  • 检查Web服务实现是否可以接受葡萄牙语字符
  • 检查Web容器中的编码。例如Tomcat
  • 添加日志以找出丢失葡萄牙语字符的位置。

希望它有所帮助。

答案 1 :(得分:0)

尝试将您的休眠配置更改为:

<hibernate-configuration>
<session-factory>
<property name="connection.useUnicode">true</property> 
<property name="connection.characterEncoding">UTF-8</property>
<property name="connection.charSet">UTF-8</property>

如果这不起作用,请尝试将UTF-8添加到JDBC网址中的characterEncoding

此外,这个问题可能会对您有所帮助:Cannot insert non latin symbols in MySQL

答案 2 :(得分:0)

这适用于我的情况:

添加环境变量 JAVA_TOOL_OPTIONS 而非 _JAVA_OPTIONS ,其值为

-Dfile.encoding=UTF8