提问人:Danteee313 提问时间:12/23/2022 更新时间:12/23/2022 访问量:102
在将符号写入文件时,如何在XML中将符号保存为可读?
How to save symbol as readable in XML while writing it to a file?
问:
我正在将 XML 文件保存在我的 Android 应用程序中。当我写它时,我正在使用这种方法:
context.contentResolver.openOutputStream(source, "w")?.bufferedWriter()?.use { stream ->
val xmlString = Xml.newSerializer().document {
// some xml things
}
stream.write(xmlString)
}
它是工作文件。
但是当我保存圆柱体符号并尝试在阅读器应用程序中打开此文件时,我看到了十进制 HTML 代码。例如:而不是 .我得到的建议是,我需要使用它的 UTF-8 值直接保存西里尔符号。你能帮我吗?П
П
答:
0赞
dxzmpk
12/23/2022
#1
您可以在此处找到官方的 kotlin 文档 https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.io/java.io.-file/buffered-writer.html。
context.contentResolver.openOutputStream(source, "w")?.bufferedWriter(
charset: Charset = Charsets.UTF_8)?.use { stream ->
val xmlString = Xml.newSerializer().document {
// some xml things
}
stream.write(xmlString)
}
此外,您需要使用指定的相同编码在阅读器应用程序中打开此文件。
评论
0赞
Danteee313
12/23/2022
这等于我的代码。 用作默认值bufferedWriter
UTF-8
0赞
dxzmpk
12/23/2022
@Danteee313 您是否在阅读器应用程序中使用了 UTF-8?如果是这样,可以先尝试将 xmlString 转换为字节,然后将其写入 outputStream。让我知道它是否有效!val byteArray = xmlString.toByteArray() contentResolver.openOutputStream(Uri.EMPTY, "w")?.write(byteArray)
0赞
Danteee313
12/23/2022
不,不是。 我需要以某种方式转换 UTF-8 值中的符号
0赞
dxzmpk
12/23/2022
@Danteee313 根据 codetable.net/decimal/1055,您已正确编码为 UTF-8。因此,请检查您是否使用了正确的字符集来打开文件。我不确定您使用哪个“阅读器应用程序”,但对于 xml,您可以添加到头部,这可能会有所帮助。П
<?xml version = "1.0" encoding = "UTF-8" standalone = "no" ?>
0赞
Slaw
12/23/2022
如果@Danteee313使用错误的编码在“阅读器应用程序”中打开文件,他们不应该看到类似 or 的东西(即替换字符)吗?他们看到的实际输出()看起来更像是出于某种原因被转义,而不仅仅是被“阅读器应用程序”解释错误。换句话说,我认为是真正写入文件的内容。?
�
П
П
П
评论