1

我正在制作一个从 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,以检查它的外观。但是我收到了部分数据,以及一些奇怪的字符。我做错了什么?先感谢您!我附上了一张来自我的测试设备的图像,以便向您展示奇怪的吐司结果:

在此处输入图像描述

4

1 回答 1

1

您需要将 xml 的编码设置为 UTF 8。您可以通过右键单击文件然后从下拉菜单中设置文件编码来执行此操作。

于 2013-05-09T14:24:00.310 回答