2011-07-14 13 views
8

Właśnie zaimportowałem fragment tekstu do elementu napisanego dla aplikacji książki i otrzymuję ten błąd: W treści elementu tego dokumentu znaleziono nieprawidłowy znak XML (Unicode: 0x1f). Sprawdziłem to tutaj http://lwp.interglacial.com/appf_01.htm, a opis mówi US (usunięcie podkreślenia nie działa). Co to za postać, więc mogę ją usunąć, jeśli to możliwe. Jestem bardzo nowy dla Androida, więc proste odpowiedzi proszę :)Co to jest znak 0x1f?

Odpowiedz

7

US oznacza "separator jednostek". To jest niewidzialna postać, więc powinieneś otworzyć swój plik tekstowy za pomocą edytora tekstów, który może pokazywać niewidzialne postacie i usuwać je. Myślę, że prawdopodobnie Notepad ++ daje tę funkcjonalność:

http://notepad-plus-plus.org/

+1

Pobierany notatnik ++, otwarty plik i pojawił się od razu, genialnie! Dziękuję :) – Broo

14

0x1F jest Unit Separator, archaiczny sposób oddzielić pól w tekście (jak , lub Tab w formacie CSV).

Rzeczywiście jest to not a valid text character w XML 1.0 (ale allowed in XML 1.1). W ciągu wejściowym UTF-8 można również bezpiecznie zastąpić bajt 0x1f za pomocą 0x09 (Tab), aby obejść problem. Alternatywnie, zadeklaruj dokument jako XML 1.1 i użyj parser XML 1.1.

+0

Dzięki Phihag, ale moje zaćmienie mówi inaczej. Używam xml wersji 1.0, która wydaje się być standardem dla projektów android na Eclipse. Czy powinienem to aktualizować? – Broo

+0

@ Broo Mało prawdopodobne, że aktualizacja pomoże, ale może zgłosić błąd, jeśli ten problem będzie się powtarzał. Źle zrozumiałem twoje pytanie. Następnym razem, jeśli nie jest związany z programowaniem (tzn. Chcesz coś zrobić * zamiast * pisać kod *, który coś robi), zapytaj na http://superuser.com/ – phihag

+0

WRONG: 0x1f nie jest legalnym XML znak w XML 1.0. Zobacz http://www.w3.org/TR/REC-xml/#charsets. Może być wyrażony jako '# x1f;' w XML 1.1, ale nie w XML 1.0. Downvoting. –