요약 : iOS에서 UIWebView로 올바른 문자 인코딩을 명시 적으로 지정하지 않은 영어가 아닌 사이트를 탐색 할 때 페이지를 올바르게 표시 할 수 없습니다.UIWebView에서 문자 인코딩을 변경하는 방법은 무엇입니까?
상세 설명 :있는 UIWebView에서 loadRequest:
방법을 잘 (ISO-8859-1로 웹 서버 또는 HTML 메타 태그에 기록 된 문자 집합 및 기본에서 전송 된 문자 세트 헤더에 지정된 인코딩을 사용합니다으로, charset이 지정되지 않은 경우 영어 이외의 사이트가 제대로 표시되지 않을 수 있습니다.
Google에 UIWebView에서 사용하는 charset을 변경하는 방법을 시도했지만 인코딩 방법을 loadData:MIMEType:textEncodingName:baseURL:
방법으로 지정하면 인코딩 이름을 지정할 수 있습니다. 우리가있는 UIWebView 프레임을로드 할 때 알림을받을 수있는 방법을 발견, 심지어 경우의 UIWebView 대리자 방법 프레임 webView:shouldStartLoadWithRequest:navigationType:
를 호출하지 않기 때문에
은 그러나, 대신 loadRequest:
의 loadData:MIMEType:textEncodingName:baseURL:
+있는 NSURLConnection를 사용하는 것은 좋지 않습니다 프레임 콘텐츠를로드하려면 loadData:MIMEType:textEncodingName:baseURL:
으로 호출 할 수 없습니다. 그렇게하면 프레임이 외부 페이지로로드되기 때문입니다.
게다가 자바 스크립트 해킹을 시도했지만 속성이 읽기 전용이며 변경할 수없는 것으로 보입니다.
[webView stringByEvaluatingJavaScriptFromString:@"document.characterSet='utf-8';"];
또 다른 해결 방법은 HTML에 메타 태그를 삽입하고 수정 된 코드를로드 할 수있는 UIWebView를 요구하지만, 위에서 언급 한 프레임 문제는 여기에 적용된다.
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
질문 :있는 UIWebView에로드 된 웹 페이지의 문자 인코딩을 변경하고 프레임을 제대로 처리 할 수있는 더 나은 솔루션이 있습니까?
여기에 귀하의 URL을 제공하는 다음 날 확인 주시기 바랍니다. –
웹 페이지 또는 서버를 제어 할 수 있습니까? – Magnus
너무 쉽게 @magnus;) – Till