安卓:如何删除空格的中国字?(Android : How to remove white space

2019-09-16 15:29发布

我对中国的中字修剪空格的问题。 我试图登录的内容,这里是它的样子:

当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;
}

Answer 1:

中国和日本不使用常规的空格字符“”。 在语言使用自己的那相同宽度的字符。 这是这里的字符“”,你应该写一个手动微调功能来检查该字符的字符串的开头和结尾。

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

点击以下链接告诉我们,表意空间是UTF-8 0xe38080和0x3000处的UTF-16,和Java的Character.isSpaceChar()函数将返回true。 我本来以为String.trim()将使用此属性来确定是否要修剪,虽然。

http://www.fileformat.info/info/unicode/char/3000/index.htm



Answer 2:

您可以使用谷歌番石榴库这一点;

CharMatcher.inRange('\0', ' ').trimFrom(str);

你可以参考更多关于这个在这里:

如何正确地从Java中的字符串修剪空格?



Answer 3:

修剪以Unicode空格其为具有2字节使用字符串替换。

更换1个字节的空间2字节的空间。 0x3000处是unicode表意文字SPACE的十六进制值

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


文章来源: Android : How to remove white spaces in Chinese characters?