Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 具有不同字符串编码的拆分和索引问题_Android_String - Fatal编程技术网

Android 具有不同字符串编码的拆分和索引问题

Android 具有不同字符串编码的拆分和索引问题,android,string,Android,String,由于某些原因,在某些情况下使用string.split时出现问题。这一定与文件的编码有关。但是,我确保在Eclipse的“欠编码”中,它在所有情况下都是默认的MacRoman,这是所有代码文件中使用的默认值 然而,当我将一个字符串从一个java文件复制到另一个包含该字符串的文件时: "Test String" - while typing this string again "Test String" 这是有区别的。第一个空格编码为160,而第二个空格编码为32 因此,当使用拆分时,我必须确保

由于某些原因,在某些情况下使用string.split时出现问题。这一定与文件的编码有关。但是,我确保在Eclipse的“欠编码”中,它在所有情况下都是默认的MacRoman,这是所有代码文件中使用的默认值

然而,当我将一个字符串从一个java文件复制到另一个包含该字符串的文件时:

"Test String" - while typing this string again "Test String"
这是有区别的。第一个空格编码为160,而第二个空格编码为32

因此,当使用拆分时,我必须确保使用正确编码的

我现在就是这样做的——我觉得不是很优雅

其中longText包含要拆分的文本

    char splitChar;
    if (longText.indexOf((char) 32) > 0) {
        splitChar = (char) 32;
    } else
        splitChar = (char) 160;
    String splitCharString = String.format("%c", splitChar);
    String[] tokens = longText.split(splitCharString);
有更好的方法吗


ps仅将Eclipse中的文件编码显式更改为MacRoman是不起作用的

160是拉丁字母1,因此是字符的Unicode码点。它与普通空间不同

MacRoman字符集在不同的码点202处具有该特征。通常,为了编辑Java源代码,应该使用Unicode编码,如UTF-8