java - 如何将这些 UTF-8 文字转换为字符串?

标签 java

我有这样的 UTF-8 文字:

String literal = "\x6c\x69b/\x62\x2f\x6d\x69nd/m\x61x\x2e\x70h\x70";

我需要阅读它们并将它们转换为纯文本。

java中有可以解释这些的导入吗?

谢谢。

最佳答案

Java 本身不支持 UTF-8 文字。 Java 对 Unicode 的语言支持仅限于基于 UTF-16 的 Unicode 转义。

您可以使用 Unicode 转义符在字符串文字中表达 UTF-8 字符,如下所示:

String literal = 
    "\u006c\u0069b/\u0062\u002f\u006d\u0069nd/m\u0061x\u002e\u0070h\u0070";

(假设没有输入错误...)

或者您可以(在本例中)用普通 ASCII 字符替换转义符。

请注意,从 UTF-8 到 UTF16 的转换通常并不那么简单。 (本例很简单,因为\xnn 字符都小于 0x80,因此每个字符代表一个 Unicode 代码点/单元。)

<小时/>

另一种方法是将 UTF-8 表示为字节数组,并将其转换为字符串;例如

byte[] bytes = new byte[]{
    0x6c, 0x69, 'b', '/', 0x62, 0x2f, 0x6d, 0x69, 'n', 'd', 
    '/', 'm', 0x61, 'x', 0x2e, 0x70, 'h', 0x70};
String str = new String(bytes, "UTF-8");

(再次假设没有输入错误。)

关于java - 如何将这些 UTF-8 文字转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8004995/

相关文章:

java - 强制 org.springframework.http.ResponseEntity.ok 保留 Pascal-case json

java - 有没有办法在这段代码中使用一个 while 循环而不是 2 个?

java - 如何从 "this."指定的方法中提取值

java - 在 Android 上的 Google map View 上绘制多边形的问题

java - Opencv中的嘴巴检测在android中检测多个区域

java - 如何在 java web 服务中定义 @WebParam 的默认值?

java - 安卓 : Restore time in resume

java - 在不知道对象数量的情况下反序列化具有多个对象的文件

java - 如何使用java创建一个内网邮件系统

Java - 如果条件失败则返回到程序流程的开头