【发布时间】:2015-03-11 18:41:48
【问题描述】:
我从一个以 latin1 作为排序规则的数据库表中得到一个字符串值。不过,他的文本包含 UTF-8 字符。
所以我在我的 Web 服务器逻辑 (Java) 中执行此操作来解析奇怪的字符:
new String(latin1.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
现在一切正常,但大写重音字符(例如:À)仍显示为“?”。只有大写字母仍然存在问题(例如:à 现在已解决并且显示正确)。
有没有办法解决大写重音字符?
【问题讨论】:
-
你在哪里显示字符串?控制台,日志文件?是否可以提供一个完整的字符串示例?
-
ctrl+shift+d 在 Eclipse 调试模式下直接在变量上。
-
我在我写的测试中尝试了你的代码。我从具有 ISO 编码的文本文件中读取字符串,然后对其进行转换,它对两个字符都适用。当然它不是 100% 准确,但仍然......你可以尝试在控制台中打印变量而不是使用调试器吗?
-
我得到了同样的结果。这是数据库中编码字符串的一部分:如果您想尝试一下,可以使用 Örphëüm。
-
我总是得到:??rphëüm 结果。
标签: java utf-8 character decoding latin1