Netbeans,xml - polskie znaki

0

Witam! Mam taki problem, że gdy utworzę w netbeansie plik .jar mojego programu, program ten przestaje poprawnie rozpoznawać polskie znaki(w Netbeansie jest ok). W kontrolkach GUI wyświetlanie jest poprawne, jednak podczas walidacji xml'a(javax.xml.validation.Validator), otrzymuję błąd z którego wynika, że plik nie został poprawnie odczytany - zamiast "płeć" są krzaczki. Znalazłem wiele tematów w internecie, jednak nigdzie problem ten nie został rozwiązany.

Kodowanie projektu: UTF-8
Kodowanie xml: UTF-8
Kodowanie schemy: UTF-8.

Podawanie kodu w tym przypadku uważam za bezsensowne. Gdzie jeszcze może być źle ustawione kodowanie?

0

Witam,

możesz wkleić dumpa tego fragmentu xml z "płeć",
to znaczy ograniczyć plik powiedzmy do czegoś takiego:

<?xml version="1.0" encoding="utf-8" ?>
<ala>płeć</ala>

i wkleić,

a potem zrobić:

~$ cat ala.xml | hexdump
0000000 3f3c 6d78 206c 6576 7372 6f69 3d6e 3122
0000010 302e 2022 6e65 6f63 6964 676e 223d 7475
0000020 2d66 2238 3f20 0a3e 613c 616c 703e 82c5
0000030 c465 3c87 612f 616c 0a3e               
000003a

i też wkleić

0

Fragmencik xmla:

<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="przestrzen_domyslna" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <wyborcy>
      <wyborca id="NR1" płeć="mężczyzna">

hexdump, pierwsze 100 bajtów(powinno wystarczyć?):

C:\Users\Kamil\Documents\NetBeansProjects\XmlApp>filehdr.exe result.xml 100
result.xml (100 bytes):3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 3D 22 31 2E 30 22
20 65 6E 63 6F 64 69 6E 67 3D 22 55 54 46 2D 38 22 3F 3E 0A 3C 72 6F 6F 74 20 78
 6D 6C 6E 73 3D 22 70 72 7A 65 73 74 72 7A 65 6E 5F 64 6F 6D 79 73 6C 6E 61 22 2
0 78 6D 6C 6E 73 3A 78 73 69 3D 22 68 74 74 70 3A 2F 2F 77 77 77 2E 77 33 2E 6F
72 67

Udało mi się samemu rozwiązać problem, rozwiązanie podaje dla potomnych.
Otóż FileReader dostosowuje kodowanie do systemu(środowiska) i nie pozwala ustawić go programiście.

Należy użyć FileStreamReader'a:
InputStreamReader fReader = new InputStreamReader(new FileInputStream(sourceFile), "UTF-8");
walidujXml(fReader);

1 użytkowników online, w tym zalogowanych: 0, gości: 1