我正在制作一个从 xml 文件加载数据的安卓应用程序。问题是 xml 文件未正确处理,因此我无法对其进行序列化。我认为问题与文件的编码有关。
我是如何制作 xml 文件的?在 Eclipse 中,我单击了 New-> File -> 并创建了一个空白 xml,然后我用所需的信息填充了它。
以下是 xml 在编辑器中的外观:
<?xml version="1.0" encoding="UTF-8"?>
<data>
<categories>
<category value="Inbox"/>
<category value="Private"/>
<category value="Work"/>
<category value="Business"/>
</categories>
<todos>
<todo>
<id>1</id>
<text>Explore the app!</text>
</todo>
<todo>
<id>2</id>
<text>Add more todos!</text>
<date>2013-05-09 12:21:55 CET</date>
</todo>
</todos>
</data>
我从 res/xml 获取 xml 文件,然后将文件加载到输入流中。之后,我使用 String 构造函数将文件转换为字符串。
这是java代码:
InputStream is = getResources().openRawResource(R.xml.startingdata);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
int next = is.read();
while (next > -1) {
bos.write(next);
next = is.read();
}
bos.flush();
byte[] result = bos.toByteArray();
xmldata = new String(result,"UTF-8");
在这一步之后,我将新的 xmldata 显示给 Toast,以检查它的外观。但是我收到了部分数据,以及一些奇怪的字符。我做错了什么?先感谢您!我附上了一张来自我的测试设备的图像,以便向您展示奇怪的吐司结果: