2017-06-15 419 views
0

UNICODE我有一個關於字符串轉換問題字符串轉換爲從ANSI /十六進制字符串

,我讀了網址

http://suggestqueries.google.com/complete/search?client=firefox&hl=us&ds=yt&q=spinner

的內容和結果控制檯是

[」 Spinner「,」spinner trick「,」spinner fidget「,」spinner vietnam「,」spinner skill「,」spinner toy「,」spinner fidget toy「,」spinner vn「,」spinner hand「,」 spinner vi \ u7ec7t nam「]]

它包含字符串「spinner vi \ u1EC7t nam」,但當通過操作系統閱讀時,我看到「việtnam」

問題是我如何閱讀api的內容來查看「việtnam」作爲結果。

下面是我的原代碼

```

URL url = new URL("http://suggestqueries.google.com/complete/search?client=firefox&hl=us&ds=yt&q=spinner"); 
    URLConnection urlConnection = url.openConnection(); 
    urlConnection.connect(); 
    InputStream inputStream = urlConnection.getInputStream(); 

    InputStreamReader reader  = new InputStreamReader(inputStream); 
    BufferedReader bufferedReader = new BufferedReader(reader); 
    String line; 
    while((line=bufferedReader.readLine()) != null){ 
     System.out.println(line); 
    } 
    bufferedReader.close(); 
    reader.close(); 

```

回答

0

試試這個。

static final Pattern UNICODE = Pattern.compile("\\\\u([0-9a-fA-F]{4})"); 

static String decodeUnicodeEscape(String s) { 
    Matcher m = UNICODE.matcher(s); 
    StringBuffer sb = new StringBuffer(); 
    while (m.find()) 
     m.appendReplacement(sb, 
      String.valueOf((char)Integer.parseInt(m.group(1), 16))); 
    m.appendTail(sb); 
    return sb.toString(); 
} 

System.out.println(decodeUnicodeEscape(" vi\\u1EC7t nam")); 

結果

việt nam 
+0

它的工作原理。非常感謝。你節省了我的時間。 –

相關問題