1)我将xml作为带有£的java字符串(我现在无法访问接口,但我很可能将xml作为java的字符串)。我可以使用replaceAll(£,“”)摆脱这个字符吗?
我假设您的意思是说您要摆脱非ASCII字符,因为您正在谈论“传统”方面。您可以使用以下正则表达式消除可打印ASCII范围之外的任何内容:
string = string.replaceAll("[^\\x20-\\x7e]", "");
2)我得到xml作为字节数组-在这种情况下如何安全地处理此操作?
您需要将包裹在byte[]
中ByteArrayInputStream
,以便可以使用UTF-8编码的字符流(通过InputStreamReader其中指定编码)BufferedReader
来读取它们,然后使用来逐行读取。
例如
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(bytes), "UTF-8"));
for (String line; (line = reader.readLine()) != null;) {
line = line.replaceAll("[^\\x20-\\x7e]", "");
// ...
}
// ...