java - 将字符串中的 0x80~0xFF 替换为其他值
问题描述
我需要修改字符串,但“替换”不适用于从 0x80 开始的所有内容。
以十六进制表示的接收数据示例31 32 33 81 82 35
。但我得到的 StringBuilder 是“313233818235”(我希望看到“3132333435”)。知道如何解决吗?我正在使用“windows-1252”字符集。
Scanner scanner = new Scanner (new BufferedReader(new InputStreamReader(socket.getInputStream(),charset))).useDelimiter(mDelimiter);
rxMsg = (scanner.next()).replace("\u0081\u0082","\u0034");
byte[] byteArray = rxMsg.getBytes(charset);
StringBuilder stringBuilder = new StringBuilder();
for(byte b: byteArray) {
stringBuilder.append(String.format("%02x", b));
}
解决方案
推荐阅读
- python - Flask 条件渲染
- php - 如何在 php 文件中为 phpMailer 使用“use”关键字以避免意外的“use”(T_USE)错误
- powerbi - PowerBI 计算列疑难解答
- mysql - SpringBoot JPA MySQL 列名
- node.js - 如何在命令中使用 client.on('quildMemberAdd') 事件?
- arrays - 在 SwiftUI 中的 forEach 期间将文本字段输入添加到数组
- python - Keras - 训练效果很好,预测都是 NaN(边界损失)
- java - 如何处理乱七八糟的异步操作?
- java - 一种在堆栈中的某个位置插入元素的方法。(爪哇)
- training-data - 从每个边界框中提取