Ошибка «Недопустимый байт 1 из 1-байтовой последовательности UTF-8» - PullRequest
0 голосов
/ 25 мая 2010

Моя ошибка: «Неверный байт 1 из 1-байтовой последовательности UTF-8».

Я вызываю метод Java с использованием Blaze DS.

Ответы [ 4 ]

2 голосов
/ 25 мая 2010

Ваш XML-документ имеет маркер спецификации, поскольку он был создан с помощью программы Windows.

Java не поддерживает это из коробки.

Относительно спецификации: http://www.unicode.org/faq/utf_bom.html

Поэтому убедитесь, что в вашем XML-документе нет маркера спецификации (если это ваш файл конфигурации 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 голос
/ 25 мая 2010

Привет, Нити. Убедитесь, что ID и имя источника remoting-config.xml указаны правильно.

1 голос
/ 25 мая 2010

недостаточно деталей в вопросе.

мое предположение, похоже, что вы пытаетесь прочитать что-то как в кодировке UTF-8, а это не действительно в кодировке UTF-8.

0 голосов
/ 29 января 2013
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()) ;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...