大写重音字符显示为“?”

时间:2015-03-11 18:41:49

标签: java utf-8 character decoding latin1

我从db表中获取了一个字符串值,其中latin1作为排序规则。虽然,他的文字包含UTF-8字符。

所以我在我的Web服务器逻辑(Java)中做了这个来解决奇怪的字符:

 new String(latin1.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);

现在一切都很好但是大写的重音字符(例如:À)仍然显示为“?”。只有大写字母仍然存在问题(例如:现在已解决,并且正确显示)。

有没有办法解决大写重音字符?

1 个答案:

答案 0 :(得分:1)

好吧,它可能不是最好的解决方案,但它肯定对我有用并满足我们的需求。

问题似乎与getBytes方法vs映射编码有关。我们只是用byte []映射我们的列,以避免在WebServer / Hibernate端进行任何转换。

这样我们就可以调用new String(myByteArray,StandardCharsets.UTF-8),现在输出很好!