Java 安卓:如何删除汉字中的空格?

Java 安卓:如何删除汉字中的空格?,java,android,character-encoding,whitespace,cjk,Java,Android,Character Encoding,Whitespace,Cjk,我在删减汉字中的空格方面有问题。我尝试记录内容,下面是它的样子: 在textview中显示它时,它确实会显示中文字符,但问题是字符串文本前后的空格。有人能帮我编码/解码吗?提前谢谢 编辑1:添加了结果的屏幕截图 编辑2:在响应中添加了内容字符集 HttpProtocolParams.setContentCharset(params, HTTP.UTF_8); 但我在日志记录和在XML布局中显示时仍然会得到方形字符,方形字符会变成空白 编辑3:添加了我的工作解决方案 private S

我在删减汉字中的空格方面有问题。我尝试记录内容,下面是它的样子:

在textview中显示它时,它确实会显示中文字符,但问题是字符串文本前后的空格。有人能帮我编码/解码吗?提前谢谢

编辑1:添加了结果的屏幕截图

编辑2:在响应中添加了内容字符集

HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);
但我在日志记录和在XML布局中显示时仍然会得到方形字符,方形字符会变成空白

编辑3:添加了我的工作解决方案

    private String removeWhiteSpace(String oldString) {
    String newString = null;
    if (oldString.length() > 0) {
        Character c = oldString.charAt(0);

        boolean isWhiteSpace = Character.isWhitespace(c);                           
        if (isWhiteSpace) {
            newString = oldString.replace(c, ' ');
        } else {
            newString = oldString;
        }

        newString = newString.trim();
    }
    return newString;
}

中文和日文不使用规则空格字符“”。这些语言使用与字符相同宽度的自己的字符。这就是这里的角色 ', 您应该编写一个手动修剪函数来检查字符串开头和结尾的字符

如果将代码文件转换为unicode(如果java允许),则可以直接使用该字符。否则,您将需要查找' ' 并检查字符代码是否位于字符串的开头或结尾

下面的链接告诉我们,UTF-8中的表意空间为0xe38080,UTF-16中的表意空间为0x3000,Java的Character.isSpaceChar()函数将返回true。我本以为String.trim()会使用这个属性来决定是否修剪


您可以使用谷歌番石榴库来实现这一点

CharMatcher.inRange('\0', ' ').trimFrom(str);
您可以在此处查阅更多信息:


要修剪unicode中具有2字节的空白,请使用字符串替换

将2字节空间替换为1字节空间。0x3000是unicode表意空间的十六进制值

String.replace("\u3000"," ").trim()

问题是我如何知道中文的空白字符?