Android Kotlin:trim()函数未修剪字符串换行符
我从json文件(以前从txt文件解析的阿拉伯语json文件)中检索了两个字符串。我使用kotlinAndroid 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]作为其字节数组中的最
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字符