Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.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 Kotlin:trim()函数未修剪字符串换行符_Android_Json_Kotlin_Encoding_Newline - Fatal编程技术网

Android Kotlin:trim()函数未修剪字符串换行符

Android Kotlin:trim()函数未修剪字符串换行符,android,json,kotlin,encoding,newline,Android,Json,Kotlin,Encoding,Newline,我从json文件(以前从txt文件解析的阿拉伯语json文件)中检索了两个字符串。我使用kotlintrim()函数从json解析后删除前导和尾随的换行符。问题是,其中一个(比如file1)被成功修剪,而另一个(比如file2)没有 我曾想过编码,但从未设法通过它。据我所知,json文件很可能是从utf-8源代码编码的。因此,我使用Kotlin字符串函数将这两个文件转换为字节数组(Charsets.UTF-8)。contentToString: file1始终将[32,10]作为其字节数组中的最

我从json文件(以前从txt文件解析的阿拉伯语json文件)中检索了两个字符串。我使用kotlin
trim()
函数从json解析后删除前导和尾随的换行符。问题是,其中一个(比如file1)被成功修剪,而另一个(比如file2)没有

我曾想过编码,但从未设法通过它。据我所知,json文件很可能是从utf-8源代码编码的。因此,我使用Kotlin字符串函数
将这两个文件转换为字节数组(Charsets.UTF-8)。contentToString

file1
始终将[32,10]作为其字节数组中的最后一个元素(换行符应在其中)

file2
始终将:[32,10,-30,-128,-113]作为其字节数组中的最后一个元素(换行符应在其中)

这听起来像是在这个问题的文件末尾有额外的三字节字符(我不知道这些减号代表什么)

这是我获取json并创建JSONOBject的方法:

val file: String = applicationContext.assets.open("poets/${poetID}.txt").bufferedReader().use {
        it.readText()
}

val json = JSONObject(file)
这里,
${poetID}.txt
实际上是资产文件夹
poets/
中的json文件

我有相同的应用程序写在Swift没有这样的问题


我的问题是:结尾的辅助字节是什么?有没有办法检查从json文件解析的字符串的编码?还是通过编程更改编码的方法?

我找到了答案。附加字符表示从右向左的标记。它是阿拉伯语中常见的unicode字符