현재 내 모습을 전혀 볼 수 없습니다. 이것은 표준이어야합니다 : XML을 파싱 할 UTF-8 문자가 있습니다. I는 GWTs XmlParser가 이것을 해석하고 이름 노드 값을 출력 할 때 <person><name>Nguyển Thị Ngân</name></person>
GWT XMLParser로 구문 분석 한 후 UTF-8 문자가 손상되었습니다.
다음 문자가 손상 :
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><person><name>Nguyển Thị Ngân</name></person>";
Document doc= XMLParser.parse(xml);
NodeList list = doc.getElementsByTagName("name");
for(int i = 0; i < list.getLength(); i++){
System.out.println("XMLParser: " + list.item(i).getFirstChild().getNodeValue());
}
System.out.println("System.out: " + xml);
출력은 :
여기 은 일례이며XMLParser: Nguyá»n Thá» Ngân
System.out: <?xml version="1.0" encoding="UTF-8"?><person><name>Nguyển Thị Ngân</name></person>
나는 문자 혼란이 System.out을 통한 인쇄와 아무 관련이 없다고 해석합니다.
여기에서 문제가 될 수있는 것은 무엇입니까?
''-decl을 제거하면 어떻게됩니까? String을 파싱 중이므로 이미 바이트가 아닌 문자로 이루어져 있으므로 인코딩이 필요하지 않습니다. 브라우저 버그 일 수 있습니다. 또한 테스트를 거친 모든 브라우저에서 또는 그 중 한 브라우저에서만 발생합니까? –
비 - 라틴 문자를 유니 코드 이스케이프 코드로 대체 해 보셨습니까? 개발 환경에서 파일을 UTF-8로 저장하고 있는지 다시 확인하십시오. – chooban
@Thomas Broyer : 제거해도 아무런 차이가 없습니다. 지금까지 나는 코드를 GWTTestCase로만 실행했습니다. 나는 당신의 조언을 따르고 프로덕션 모드에서 다른 브라우저에서 그것을 테스트 할 것이다. 월요일에 그렇게 할거야. –