java - 如何将 ASCII 转换为字符串

标签 java arrays spring utf-8 ascii

我正在尝试将 ascii 列表解析为字符串。问题是,对于一些特殊字符,我遇到了麻烦。如果我尝试解析这个:

115 097 116 195 168 108 194 183 108 105 116

,结果应该是“satèl·lit”。我用来解析它的代码是:

ASCIIList.add(Character.toString((char) Integer.parseInt(asciiValue)));

但结果是卫星照明。我看到例如“è”->“195 168”。我不知道如何正确解析它。

最佳答案

假设您已经将输入拆分为字符串数组,则代码可能如下所示:

String convertToString(String[] numberArray) {
    byte[] utf8Bytes = new byte[numberArray.length];
    for (int i = 0; i < numberArray.length; i++) {
        utf8Bytes[i] = (byte) Integer.parseInt(numberArray[i]);
    }
    return new String(utf8Bytes, StandardCharsets.UTF_8);
}

因此每个数字都变成一个字节。然后使用 UTF-8 字符集将整个字节数组转换为字符串。

UTF-8 使用多个字节来表示 ASCII 范围之外的字符。在您的示例中,它影响“è”和“·”。

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

相关文章:

java - 在 Java 中使用泛型编程,就像这样 : class A<B>, 为什么我不能 new B 的对象

java - 在 xtend 中循环,从 Java 转换

java - 是否需要使用 Java 6 SDK 和 RE 来制作 Bukkit 插件,还是应该更新版本?

java - 如何将浮点条目的二维数组克隆到另一个类似类型和大小的二维数组?

spring - Jasypt 加密在升级到 JDK 7u261 后停止工作

java - 每次我最小化并重新打开 Java 窗口时,图形都会发生变化

javascript - 如何访问对象属性数组?

javascript - javascript数组中的引用错误

java - Spring 与 Callable 异步如何工作以及我不明白的地方?

java - RestController 的抽象类自定义反序列化