我将一个文件压缩加密后的数据(基本上是乱码),输出到最终的文件中。把数据放在元素中。<Data>.......</Data>,本来最终文件直接用FileOutputStream写出来的,但是最后解密的时候读数据不方便。所以打算用dom搞成xml文件。
用dom倒是生成了xml,就是读的时候提示: Malformed UTF-8 char -- is an XML encoding declaration missing?”(行号可能太小)。 
后来换jdom,靠,连写xml文件都写不出来了:
Data=new Element("Data");
Data.setText(Content); content是加密后有乱码得到的string。
说 is not legal for a JDOM character content: 0x1a is not a legal XML character.
各种编码都试过了,就是搞不定。

解决方案 »

  1.   

    CDATA标记主要用于大量数据不经XML解析而传送给调用得应用程序。CDATA中所有信息不必使用实体引用或其他机制通知解析器,XML解析器会把他们毫不改变地传送给外围程序
      

  2.   

    utf-8编码的文件里,不能出现汉字,否则会报错。
      

  3.   

    <![CDATA ...]> ,也不管用。
    关键是这对数据是压缩 加密后的。里面出来啥,都不好说。所以搞了半天编码utf-8,gbk123啥的都搞过了。不管用。
      

  4.   

    你最好把“文件压缩加密后的数据(基本上是乱码)”做HEX或者BASE64编码,然后再放到<data></data>中