String str = new String(byteArray, StandardCharsets.UTF_8); 转换后,有不可见字符
时间: 2024-02-23 11:59:46 浏览: 52
C#_string_byte数组转换解析
这可能是因为原始的字节数组中包含了一些不可见的字符,例如控制字符或特殊字符。在使用UTF-8解码字节数组时,这些字符可能会被转换为Unicode的"替代字符",即"\uFFFD"。
要解决这个问题,你可以尝试使用其他字符集进行解码,或者在解码后对字符串进行过滤以删除不可见字符。例如,你可以使用正则表达式来匹配和删除不可见字符:
```
str = str.replaceAll("\\p{C}", "");
```
这将使用Unicode属性"控制字符"来匹配不可见字符,并将它们替换为空字符串。
阅读全文