“1字节UTF-8序列的字节1无效”错误

时间:2010-05-25 12:42:49

标签: java flex

我的错误是:“1字节UTF-8序列的字节1无效”。

我正在使用Blaze DS调用Java方法。

4 个答案:

答案 0 :(得分:2)

您的XML文档有BOM标记,因为它是使用Windows程序创建的。

Java不支持开箱即用。

关于BOM: http://www.unicode.org/faq/utf_bom.html

因此要么确保您的XML Document没有BOM标记,(如果它是您的ds配置文件),或者 在InputStream中使用类似的东西:

(不是我的代码) http://koti.mbnet.fi/akini/java/unicodereader/UnicodeInputStream.java.txt

Usage pattern:
 String enc = "ISO-8859-1"; // or NULL to use systemdefault
 FileInputStream fis = new FileInputStream(file);
 UnicodeInputStream uin = new UnicodeInputStream(fis, enc);
 enc = uin.getEncoding(); // check and skip possible BOM bytes
 InputStreamReader in;
 if (enc == null) in = new InputStreamReader(uin);
 else in = new InputStreamReader(uin, enc);

答案 1 :(得分:1)

问题中没有足够的细节。

我的猜测, 看起来你正试图读取UTF-8编码的东西,它不是UTF-8编码的。

答案 2 :(得分:1)

Hi Nithi确保“remoting-config.xml”目标ID和源名称正确无误。

答案 3 :(得分:0)

ByteArrayInputStream test = new ByteArrayInputStream( xml.trim().getBytes() );
Document document = null;
try {
    document = dbf.newDocumentBuilder().parse( test );
} catch ( Exception e ) {
    System.out.println( "Fehler 1" + e.getMessage()) ;
    try {
        test.close();
        // ... that works: String xml_x = FkString.replace( xml, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>", "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>" );
        // Replace UTF-8 to UTF8 ... works
        String xml_x = FkString.replace( xml, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>", "<?xml version=\"1.0\" encoding=\"UTF8\"?>" );
        test = new ByteArrayInputStream( xml_x.trim().getBytes() );
        document = dbf.newDocumentBuilder().parse( test );
    } catch ( Exception e1 ) {
        System.out.println( "Fehler 2" + e1.getMessage()) ;
    }
}