在java中用空格替换字符串XML中的非UTF-8字符

问题描述 投票:0回答:2

检查此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("’", " ");
java regex replace utf-8
2个回答
1
投票

您可以使用

+
量词:

    String s = "abc’s house.";
    s = s.replaceAll("[^\\x00-\\x7F]+"," ");
    System.out.println(s);

打印:

abc 的房子。


0
投票

您可以使用以下命令删除非 UTF-8 字符并将其替换为某些值。

    if(fields!=null&&!("").equals(fields)) {
        return (fields.replaceAll("[^\\x00-\\xFF]+"," ?"));
    }else {
        return fields;
    }
© www.soinside.com 2019 - 2024. All rights reserved.