2010-04-08 2 views
4

아랍어, 영어, 중국어, 일본어 등 다양한 언어로 된 일부 요소가있는 XML 페이지가 있습니다. 어떤 인코딩 형식을 선택해야합니까?여러 언어를 사용하여 XML 문서 렌더링하기

An invalid character was found in text content.

방법이 문제를 해결하여야한다 나 : 내가 XSL로 XML을 렌더링하려고하면 (UTF-8 또는 ISO-8859-6 또는 ISO-2022-JP를 사용하여),이 오류가?

감사합니다.

+0

유용 할 수 있습니다 DB에서 데이터를 얻는 방법에 대한 코드를 파일에 표시하려면 –

답변

2

UTF-8이 모든 영문자를 처리 할 수있는 유일한 인코딩과 같이 XML에 나타나면 안되는 포함 된 문자가 없는지 확인해야합니다. 또한 XML의 기본 인코딩이며 최신 응용 프로그램에 적합한 유일한 인코딩입니다. (어쨌든 저장소/on-the-wire의 경우 내부 처리를 위해 언어의 문자열 유형이 UTF-16 또는 32 일 가능성이 높습니다.)

입력에 문제가있는 것 같습니다 파일을 선택하십시오. 어쩌면 UTF-8이 아닌 다른 것으로 인코딩되었지만 <?xml encoding?> 선언을 잊어 버린 것 같습니다. 아니면 잘못된 ISO-2202-JP 이스케이프 시퀀스가 ​​있습니까?

XML (예 : Firefox 또는 IE)을 구문 분석하고 어떤 오류가 발생했는지 확인하기 위해 입력 파일을로드하려고 시도해야합니다 (예 : Firefox 또는 IE).

(당신이 이미 잃은 당신은 하나의 XML 파일에 인코딩을 혼합 할 수 없습니다. 당신이 밖으로 말다툼 XML로 서로 다른 소스에서 문자열을 바이트를 한 경우.이 XML을 생성하는 방법)을

+0

실제로 우리의 응용 프로그램은 여러 언어를 지원합니다. 이 XML은 DB의 모든 언어로 된 데이터를 포함하는보고 목적으로 사용됩니다. 보고서의 일반적인 인코딩 형식을 선택할 수 없습니다! – bdhar

+1

다중 언어, 다중 인코딩을 의미합니까? 다른 인코딩으로 된 내용으로 XML 파일을 만드는 것은 불가능합니다. 다른 인코딩 소스에서 XML을 출력해야하는 경우 해당 XML *을 작성하는 프로그램은 XML에 포함하기 전에 모든 데이터를 단일 인코딩 (일반적으로 UTF-8)으로 변환해야합니다. 트랜스 코딩의 부족으로 인해 잘못된 UTF-8 바이트 시퀀스가 ​​포함 된 XML 파일은 올바른 형식이 아니므로 정의에 따라 XML 파일이 아닙니다. – bobince

+0

XML 파일에 잘못된 문자 시퀀스가 ​​있는지 찾는 방법은 무엇입니까? 거기에 어떤 도구가 있습니까 ?? – bdhar

1

어디서 오류를 발견 했습니까? XML 자체에 잘못된 문자 (예 : \ r, \ t 및 \ n IIRC 이외의 U + 0000 및 U + 001F 사이의 제어 문자)가있을 수 있습니다. 괜찮은 XML 편집기에 (또는 프로그래밍 방식으로) XML을로드 할 때이를 볼 수 있습니다.

이외에도 UTF-8은 일반적으로 인코딩의 좋은 선택입니다. 극동 캐릭터의 경우 UTF-16보다 효율적이지 않습니다. UTF-16 및 UTF-8은 모두 기본 유니 코드 문자를 표현할 수 있도록합니다 (기본 다국어 문자 이외의 문자에 대해서는 UTF-16으로 서로 게이트 쌍을 사용).

+0

감사합니다. Jon. 이 기사는 저를 이해하는데 도움이되었습니다. http://www.joelonsoftware.com/articles/Unicode.html – bdhar

0

UTF-8은 UCS2 (대부분의 사람들이 유니 코드를 말할 때 지칭하는) 문자를 모두 포함하므로 적절해야합니다. < 또는 > 또는 인쇄 할 수없는 문자

+0

UTF-8은 UCS2뿐 아니라 아스트랄 비행기를 포함한 유니 코드의 풍모를 다룹니다. – bobince

+0

일부 UTF-8 파서는 UCS4를 제공하더라도 넘어집니다. –