2010-05-10 9 views
2

WPF WebBrowser의 NavigateToString 메서드를 사용하여 UTF8 HTML (히브리어 텍스트가 포함 된)을 표시하면 완벽하게 표시됩니다.WPF WebBrowser NavigateToString 대 NavigateToStream (히브리어/비 utf8 인코딩)

그러나 NavigateToString을 사용하여 히브리어 텍스트가 포함 된 HTML을 utf8이 아닌 인코딩 (CodePage 1255)으로 표시하려고하면 히브리어가 엉망입니다.

Visual Studio의 디버거에서 cp1255 문자열을 확인했는데 멋지게 보였으며 웹 브라우저의 내용 소스를 저장하고 외부 브라우저로 열면 멋져 보였습니다.

NavigateToString 메서드 대신 NavigateToStream 메서드를 사용하면 훌륭하게 작동합니다.

NavigateToString의 문제점은 무엇입니까? 내가 뭔가 잘못하고 있는거야?

답변

0

NavigateToString = NavigateToStream + UTF8NoBOM NavigateToStream을 사용하고 스트림 데이터에 올바른 인코딩이 있는지 확인하십시오.

+0

귀하의 의견은 원래의 포스터가 잘못된 것을 의미합니다. 그러나 대신 그들이해야 할 일은 무엇이라고 생각합니까? "올바른 인코딩을 갖고 있는지 확인하십시오"라고 말하면서 인코딩을 지정할 방법이 없습니다 - .NET의 문자열 유형은 정의상 UTF-16 코드 단위의 시퀀스입니다. 그것은 당신이 원한다고해도 변경할 수없는 것입니다. 따라서 문자열 (예 :'NavigateToString')을 사용하는 모든 API는 정의에 따라 UTF-16 코드 단위의 시퀀스를 요구합니다. IE가 종종 BOMless UTF-8을 cp1255로 오인하기 때문에'NavigateToString'이 BOM을 통과하지 못한다는 사실은 버그처럼 보입니다. –

관련 문제