在android中处理xml文件后的奇怪字符

时间:2013-05-09 14:11:58

标签: java android xml encoding

我正在制作一个从xml文件加载数据的andorid应用程序。问题是xml文件未正确处理,因此我无法序列化它。我认为问题与文件的编码有关。

我是如何制作xml文件的?从Eclipse开始,我点击了New->档案 - >并创建了一个空白的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构造函数将文件转换为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,以检查其外观。但是,我收到部分数据,加上一些奇怪的字符。我做错了什么?先感谢您! 我从我的测试设备上附上一张图片,以便向你展示奇怪的吐司结果:

enter image description here

1 个答案:

答案 0 :(得分:0)

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