将字符串从 ansi/hexadecimal 字符串转换为 unicode
Convert String to unicode from ansi/hexadecimal string
我对字符串转换器有疑问
我阅读了来自url的内容
http://suggestqueries.google.com/complete/search?client=firefox&hl=us&ds=yt&q=spinner
控制台中的结果是
["spinner",["spinner","spinner tricks","spinner fidget","spinner vietnam","spinner skill","spinner toy","spinner fidget toy","spinner vn","spinner hand","spinner vi\u1EC7t nam"]]
它包含字符串 "spinner vi\u1EC7t nam",但是当按 OS 读取它时,我看到 "việt nam"
问题是我如何阅读 api 的内容以查看 "việt 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
我对字符串转换器有疑问
我阅读了来自url的内容
http://suggestqueries.google.com/complete/search?client=firefox&hl=us&ds=yt&q=spinner
控制台中的结果是
["spinner",["spinner","spinner tricks","spinner fidget","spinner vietnam","spinner skill","spinner toy","spinner fidget toy","spinner vn","spinner hand","spinner vi\u1EC7t nam"]]
它包含字符串 "spinner vi\u1EC7t nam",但是当按 OS 读取它时,我看到 "việt nam"
问题是我如何阅读 api 的内容以查看 "việt 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