我正在与巴西客户打交道,其中数据是葡萄牙语。
我的应用程序负责通过Web服务调用读取数据并将其存储在我们的数据库中。我目前面临的问题是葡萄牙语字符未被识别,并作为特殊字符存储在我的数据库中。
我正在使用MySQL数据库,所有表都配置为collation UTF-8。我尝试手动插入葡萄牙语字符到我的数据库,它工作。所以我怀疑它将葡萄牙语字符转换为特殊字符的java。
另外,我的应用程序正在使用Hibernate进行数据库操作。
我能够像在日志中看到的那样获取角色,并且在尝试将数据存储在数据库中时会出现问题。
Eg: Original characters: Gerãt
Database characters: Gerãt
我需要对数据库进行哪些配置或设置或更改才能使用葡萄牙语捕获数据?
答案 0 :(得分:0)
可能不是数据库问题,而是应用程序配置问题。
很少有人帮忙:
希望它有所帮助。
答案 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