我无法了解如何进行下面的转换
String s = "Här har du! â\u0080\u0093 Hur väl kan du snacka?";
t = convert(s);
// t should be "Här har du! â Hur väl kan du snacka?"
我找不到如何将s翻译成t。有谁知道如何用Java做到这一点?
答案 0 :(得分:2)
试试这样的事情;
String s = "Här har du! â\u0080\u0093 Hur väl kan du snacka?";
byte[] bytes = s.getBytes("ISO-8859-1");
String str = new String(bytes, "UTF-8");
输出是;
Här har du! – Hur väl kan du snacka?
以下代码;
public static void main (String[] args) throws java.lang.Exception
{
String s = "Här har du! â\u0080\u0093 Hur väl kan du snacka?";
byte[] bytes = s.getBytes("ISO-8859-1");
String str = new String(bytes, "UTF-8");
System.out.println(str);
}
答案 1 :(得分:1)
正如我在评论中已经提到的,看起来您的字符串s
已经损坏。正确的解决方案是首先修复s
所在的位置。看起来你正在使用一些单字节编码解释什么是真正的“UTF-8”编码字符串(“ISO8859-1”似乎适用于你的测试字符串)。
如果你原来的字符串损坏中没有丢失数据,你可以使用以下方法对当前字符串进行修补:
String s = "Här har du! â\u0080\u0093 Hur väl kan du snacka?";
byte[] b = s.getBytes("ISO-8859-1");
String t = new String(b, "UTF-8");