java - Java: 如何从字符串"u00C3" 等创建 unicode

  显示原文与译文双语对照的内容
0 0

我有一个文件,它的字符串类型为 u00C3. 我想创建一个由java中的unicode表示的unicode字符。 我试过但找不到。 帮助。

编辑:当我读取文本文件字符串时,将包含"u00c3"不作为 unicode,但作为ASCII字符'''''0''0''3"。 我想从ASCII字符串中生成unicode字符。

时间: 原作者:

0 0

我在网上找到了这个


String unescape(String s) {
 int i=0, len=s.length();
 char c;
 StringBuffer sb = new StringBuffer(len);
 while (i <len) {
 c = s.charAt(i++);
 if (c == '') {
 if (i <len) {
 c = s.charAt(i++);
 if (c == 'u') {
//TODO: check that 4 more chars exist and are all hex digits
 c = (char) Integer.parseInt(s.substring(i, i+4), 16);
 i += 4;
 }//add other cases here as desired...
 }
 }//fall through:  escapes itself, quotes any character but u
 sb.append(c);
 }
 return sb.toString();
}

原作者:
0 0

,我有点慢。 以下是我的解决方案:


package ravi;

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.regex.Pattern;
public class Ravi {

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

 public static void main(String[] args) throws Exception {
 BufferedReader br = new BufferedReader(new FileReader("ravi.txt"));
 while (true) {
 String line = br.readLine();
 if (line == null) break;
 if (!UCODE_PATTERN.matcher(line).matches()) {
 System.err.println("Bad input:" + line);
 } else {
 String hex = line.substring(2,6);
 int number = Integer.parseInt(hex, 16);
 System.out.println(hex +" ->" + ((char) number));
 }
 }
 }

}

原作者:
0 0

可能是沿着线的一些东西:


Scanner s = new Scanner( new File("myNumbers") );
while( s.hasNextLine() ) { 
 System.out.println( 
 Character.valueOf( 
 (char)(int) Integer.valueOf(
 s.nextLine().substring(2,6), 16
 )
 )
 );

原作者:
...