java - 如何从 ASCII 转换为字符串
问题描述
我正在尝试将 ascii 列表解析为字符串。问题是对于一些特殊字符,我有 torubles。如果我尝试解析这个:
115 097 116 195 168 108 194 183 108 105 116
,结果应该是“satèl·lit”。我用来解析它的代码是:
ASCIIList.add(Character.toString((char) Integer.parseInt(asciiValue)));
但结果是satèl·lit。我看到例如“è”->“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 范围之外的字符。在您的示例中,它影响“è”和“·”。
推荐阅读
- flutter - 像素向右溢出
- jenkins - 我们可以使用 nexus 作为代理安装 jenkins 插件吗
- c - 即使在 %c 前面添加了一个空格,也会继续跳过提示
- reactjs - 如何使 useAuth 挂钩公开的函数在普通 JS 文件/模块中可用
- shell - 使用 shell 脚本从“最后一次配置:2021-11-09 17:58:55 GST(16:39:26 前)由 root”中查找日期
- ios - 如何使用 CMSampleBuffer 创建 AVAudioPCMBuffer?
- firebase - 如何禁用 Firebase 实时数据库
- python - 使用 f.solve 时如何解决“存在不匹配”错误?
- angular - Angular 路由器导航事件,不触发绝对 URL 点击
- sql - 我无法从 influxdb 中删除我的错误测量值,我该怎么办?