簡體   English   中英

java中字符編碼之間的轉換

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM