2009-05-28 11 views
7

Tôi có một câu hỏi thực sự đơn giản, nhưng tôi không thể tìm thấy câu trả lời cho nó ở bất cứ đâu và tôi cần phải chắc chắn về điều này.Trường hợp thẻ khai báo XML có nhạy cảm không?

Tôi có nhiều tệp XML khác nhau từ các nhà cung cấp khác nhau. Một trong những nhà cung cấp cung cấp cho tôi một tệp XML với các ký tự tiếng Nhật trong tệp. Ban đầu, tôi gặp sự cố khi xử lý tệp XML (tôi đang sử dụng MSXML SDK). Các nhân vật sẽ đi sai. Tôi thấy rằng nếu sau đây đã được thêm vào tập tin XML tất cả mọi thứ làm việc tuyệt vời.

<?xml version="1.0" encoding="UTF-16"?> 

Và vì vậy tôi đã yêu cầu nhà cung cấp thêm tệp này vào tệp của họ. Nhưng họ đã thêm mã hóa bằng mã hóa trong chữ thường:

<?xml version="1.0" encoding="utf-16"?> 

Và khi tôi tải tệp mới này, với tuyên bố này, tôi gặp vấn đề tương tự như khi tuyên bố này không có.

Điều tôi đang cố gắng tìm ra (chắc chắn) là nếu thuộc tính mã hóa phân biệt chữ hoa chữ thường (hoặc có vấn đề khác). Có quan trọng là họ đặt "utf-16" so với "UTF-16" không?

Cập nhật: Theo lời khuyên của những người đã đăng câu trả lời ở đây, tôi đã thiết lập và thực hiện kiểm tra. Một tệp có chữ thường là utf-16 và chữ hoa khác. Ngoài ra, các tệp tin giống hệt nhau. Điều này không khắc phục được sự cố và không phải là vấn đề. Kết luận của tôi là MSXML không phân biệt chữ hoa chữ thường như thông số kỹ thuật, được đăng trong câu trả lời, nêu rõ.

+0

rõ ràng là nếu vấn đề biến mất với một phiên bản chứ không phải vấn đề khác thì nó quan trọng ... – workmad3

Trả lời

10

Tôi cho rằng câu hỏi là không thực sự "là standrard trường hợp nhạy cảm?" nhưng "mã hóa phân biệt chữ hoa chữ thường trong MSXML SDK?"

Từ bytes.com:

Các spec XML nói rằng bộ vi xử lý "NÊN" là tên phù hợp với mã hóa trường insensitively. "NÊN" là thuật ngữ kỹ thuật, ít mạnh hơn "PHẢI", nhưng tôi không thể thấy bất kỳ lý do nào khiến bộ xử lý không thực hiện được.

Tuy nhiên, chúng tôi biết rằng điều này có thể không phải lúc nào cũng đúng trong thực tế. Nếu bạn có thể thử cả hai bên cạnh nhau, hãy làm như vậy và cho chúng tôi biết kết quả là gì.

+0

Tôi có thể và sẽ. Nó chỉ mất khá nhiều nỗ lực để thiết lập nó. Tôi đã hy vọng một người có kiến ​​thức chi tiết về MSXML .... –

+0

Tôi đã đăng một bản cập nhật ở trên. Cảm ơn bạn. –

8

Từ XML specs:

XML processors SHOULD match character encoding names in a case-insensitive way 

Vì vậy, nó không cần thiết nhưng recommened là case-insensitive, theo RFC 2119:

  1. NÊN Từ này, hoặc tính từ "RECOMMENDED", có nghĩa là có thể có các lý do hợp lệ trong các trường hợp cụ thể là để bỏ qua
    mục cụ thể, nhưng đầy đủ ngụ ý phải được hiểu và
    cân nhắc cẩn thận trước khi chọn một khóa học khác nhau .
+0

Mặc dù câu trả lời của bạn và JoshJordan cũng giống nhau, tôi sẽ đưa câu trả lời cho anh ấy vì anh ấy đã chỉ ra rằng nó có thể không đúng trong thực tế và chúng ta nên thử song song. Nhưng, tôi thích hợp để lại một câu trả lời thích hợp và tôi sẽ +1 cho điều đó. Một lần nữa, cảm ơn bạn. –