簡體   English   中英

將字符串從ansi /十六進制字符串轉換為unicode

[英]Convert String to unicode from ansi/hexadecimal string

我對字符串轉換器有問題

我從url中讀取了內容

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

結果在控制台中是

[“旋轉器”,[“旋轉器”,“旋轉器技巧”,“旋轉器小工具”,“旋轉器越南”,“旋轉器技巧”,“旋轉器玩具”,“旋轉器小工具”,“旋轉器vn”,“旋轉器手” ,“ spinner vi \\ u1EC7t nam”]]

它包含字符串“ spinner vi \\ u1EC7t nam”,但是當通過操作系統讀取時,我看到“việtnam”

問題是我如何讀取api的內容以查看“ vi nam”的結果。

下面是我的原始代碼

```

    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();

```

嘗試這個。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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