2010-03-10 30 views

Trả lời

5

hoặc là phân tích cú pháp được thiết lập cho UTF-8 mặc dù các tập tin được mã hóa bằng cách khác, hoặc các tập tin được khai báo là sử dụng UTF-8 nhưng nó thực sự không.

18

phổ biến nhất đó là do cho ăn ISO-8859-x (Latin-x, như Latin-1), nhưng phân tích cú pháp cho rằng nó đang nhận được UTF-8. Một số chuỗi ký tự Latinh-1 (hai ký tự liên tiếp có dấu trọng âm hoặc dấu âm) tạo thành thứ không hợp lệ như UTF-8. đầu tiên b yte, byte thứ hai có các bit thứ tự cao bất ngờ.

này có thể dễ dàng xảy ra khi một số quá trình bãi ra XML sử dụng Latin-1, nhưng một trong hai quên để ra XML khai (trong trường hợp này XML phân tích cú pháp phải mặc định UTF-8, theo XML thông số kỹ thuật), hoặc tuyên bố đó là UTF-8 ngay cả khi nó không phải.

+0

Bất kỳ đề xuất nào về cách sửa lỗi đó? Tôi đã gặp phải vấn đề này khi xác định tác vụ kiến ​​bằng cách sử dụng thư viện XMLTask của bên thứ ba. – AgentKnopf

+0

Đó là khó khăn sau đó; nếu không những gì thường được thực hiện là tạo một InputStreamReader một cách rõ ràng cho mã hóa cụ thể, sau đó đưa nó vào trình phân tích cú pháp XML. Nhưng không chắc chắn phải làm gì với Ant ... ngoài việc tự sửa chữa tập tin XML, nếu có thể. – StaxMan

+0

Tôi đã tìm ra vấn đề - Trong một trong những xml của tôi, tôi đã có một Umlaut (ä, ö, ü) mà bằng cách nào đó đã hơi say lên khi tôi chuyển đổi tập tin xml thành các định dạng khác nhau. Một khi tôi gỡ bỏ Umlaut nó đã làm việc ra. – AgentKnopf

2

Bạn có thể thử thay đổi mã hóa ký tự mặc định được String.getBytes() sử dụng thành utf-8. Sử dụng tùy chọn VM -Dfile.encoding = utf-8.

2

Tôi gặp vấn đề tương tự. Vấn đề của tôi là tôi đã tạo một tệp XML mới với jdom và FileWriter (xmlFile). FileWriter không thể tạo tệp UTF-8. Thay vì sử dụng FileOutputStream (xmlFile) giải quyết nó.

1

Đối với những người vẫn gặp lỗi như vậy.

từ UTF-8 đang được sử dụng séc ra tài liệu xml của bạn cho bất kỳ chữ cái la tinh hoặc lâu hơn: tôi đã cùng một vấn đề và lý do được tôi đã này:

<n:name>Åke Jógvan Øyvind</n:name> 

Hope this helps

0

Tôi đã có cùng một vấn đề quá khi cố gắng nhập tệp .xml của tôi vào công cụ java của tôi. Và tôi đã tìm thấy một giải pháp tốt cho việc này: 1. Mở tệp .xml bằng Notepad ++ rồi lưu tệp .xml dưới dạng tệp .rtf. Sau đó mở tệp này trong ứng dụng WordPad. 2. Lưu tệp .rtf dưới dạng tệp .txt, sau đó mở tệp bằng Notepad và lưu tệp đó dưới dạng tệp .xml một lần nữa. Khi lưu trong Notepad, gần cuối cửa sổ bật lên, hãy đảm bảo chọn tùy chọn "Mã hóa: UTF-8". Nó làm việc cho tôi, hy vọng nó cũng hữu ích cho bạn.

Các vấn đề liên quan