[英]Conversion between character encoding in java
我無法找到如何進行下面的轉換
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做到這一點?
試試這樣的事情;
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);
}
正如我在我的評論已經提到的,它看起來像你的字符串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");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.