Hibernate:在latin1编码中,有没有办法用utf-8字符保存对象?

时间:2015-06-09 07:17:46

标签: java mysql hibernate encoding

目前我的spring应用程序正在使用characterEncoding = UTF-8连接连接到mysql数据库,但是几个表在latin1中都有编码,我真的不需要将utf-8字符存储到dabase中作为原始版本,为了我保存'? ????”而不是他们是可以接受的,但现在我收到了这个错误:

Caused by: java.sql.SQLException: Incorrect string value: '\xD1\x84\xD1\x8B\xD0\xB2...' for colum

有没有办法为给定的表保存问号而不是抛出错误? (根据我的情况,将表转换为utf-8是不可接受的)

1 个答案:

答案 0 :(得分:0)

您可以使用

replaceAll使用'?'的非latin1字符
value.replaceAll("[^\x0-\x7f]", "?")

或者您可以使用StandardCharsets.US_ASCII进行编码和重新解码。