在 Java 中,“Unicode 统一码”通常有两种理解:
\u4E2D)下面分别说明。
\uXXXX)Java 源码本身就支持 Unicode 转义:
char c = '\u4E2D'; // 中
System.out.println(c);
如果字符串里是 "\\u4E2D"(文本形式),可以用工具类解析:
public class UnicodeUtil {
public static String decodeUnicode(String str) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); ) {
if (i + 6 <= str.length() &&
str.charAt(i) == '\\' && str.charAt(i + 1) == 'u') {
String hex = str.substring(i + 2, i + 6);
sb.append((char) Integer.parseInt(hex, 16));
i += 6;
} else {
sb.append(str.charAt(i));
i++;
}
}
return sb.toString();
}
public static void main(String[] args) {
System.out.println(decodeUnicode("\\u4E2D\\u6587")); // 中文
}
}
import java.nio.file.*;
import java.nio.charset.StandardCharsets;
public class ReadUtf8 {
public static void main(String[] args) throws Exception {
String text = Files.readString(
Paths.get("test.txt"),
StandardCharsets.UTF_8
);
System.out.println(text);
}
}
String text = Files.readString(
Paths.get("test.txt"),
StandardCharsets.UTF_16
);
import java.io.*;
import java.nio.charset.*;
public class ReadBom {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("test.txt");
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
}
String s = "中";
int codePoint = s.codePointAt(0);
System.out.println(Integer.toHexString(codePoint)); // 4e2d
✅ Java 内部字符串 始终是 UTF‑16
✅ 文件读取一定要指定字符集
❌ 不要用默认编码(new InputStreamReader(in))
如果你是指:
可以告诉我具体场景,我可以给你更精确的代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。