检查此post,我可以用空格替换
’
字符,即我的字符串 XML 中的撇号字符 ’
:
String s = "<content>abc’s house.</content>";
s = s.replaceAll("[^\\x00-\\x7F]"," ");
System.out.println(s);
问题是它产生了 3 个空格:
abc s house.
,我想说是因为 ’
可能有 3 个字符?但我需要将该字符替换为一个空格:abc s house.
如果我使用下面的方法,它可以在从 Eclipse 运行时工作,但是当我将其编译为可执行 jar 时,它会通过
’
转换 ’
,并且由于字符串没有 ’
,所以它没有不工作。 (我可以通过反编译 jar 并查看代码来看到此行为):
s = s.replace("’", " ");
您可以使用
+
量词:
String s = "abc’s house.";
s = s.replaceAll("[^\\x00-\\x7F]+"," ");
System.out.println(s);
打印:
abc 的房子。
您可以使用以下命令删除非 UTF-8 字符并将其替换为某些值。
if(fields!=null&&!("").equals(fields)) {
return (fields.replaceAll("[^\\x00-\\xFF]+"," ?"));
}else {
return fields;
}