2015-01-30 2 views
1

사용자 입력 데이터에서 생성되는 RSS 피드가 있습니다. 일본어로 텍스트를 입력하는 사용자가 많으며 대부분 문제가 없습니다. 그러나, errror를 표시 하나의 특정 RSS 피드있다 :이 특정 RSS 피드RSS 피드 인코딩

error on line 25 at column 25: Input is not proper UTF-8, indicate encoding ! 
Bytes: 0x0B 0x32 0x38 0x20 

주,이 일본어 문자가 표시되는 첫 번째 자리가 아닙니다.

나는 인코딩을 변경하려고하는 다른 답변 Error: "Input is not proper UTF-8, indicate encoding !" using PHP's simplexml_load_string을 보았습니다. 그러나이 특정 피드에서 인코딩이 실패하는 이유와 혼동 스럽습니다. 다른 방식으로 인코딩 된 일본어, 다른 사람이 다른 방법으로 입력을 감지 할 수있는 방법, 문제를 일으킬 수있는 언어 만 선택적으로 수정하는 방법

편집 : http://www.localizingjapan.com/blog/2012/01/30/detecting-and-conveting-japanese-multibyte-encodings-in-php/

나는 다음과 같은 추가하는 시도 :이 문서 당

if (!mb_check_encoding($content, "UTF-8")) { 

      $content = mb_convert_encoding($content, "UTF-8", 
       "Shift-JIS, EUC-JP, JIS, SJIS, JIS-ms, eucJP-win, SJIS-win, ISO-2022-JP, 
       ISO-2022-JP-MS, SJIS-mac, SJIS-Mobile#DOCOMO, SJIS-Mobile#KDDI, 
       SJIS-Mobile#SOFTBANK, UTF-8-Mobile#DOCOMO, UTF-8-Mobile#KDDI-A, 
       UTF-8-Mobile#KDDI-B, UTF-8-Mobile#SOFTBANK, ISO-2022-JP-MOBILE#KDDI"); 
     } 

, 그것은 여전히 ​​제대로 UTF8로 인코딩되지보고 있어요.

편집 2 : 텍스트 인코딩을 mb_detect_encoding 인코딩으로 기록했기 때문에 극도로 혼란 스럽습니다. 그리고 ASCII (분명히 일본어는 ASCII 일 수 없으므로 다른 필드 여야 함)로 되돌아옵니다. , 및 UTF-8. UTF-8이라고 생각하는 이유는 무엇입니까?하지만 여전히 이러한 인코딩 오류가 발생하고 있습니까?

+0

당신은 문제의 실제 피드를 보여 놓쳤다. XML이 이미 피드에서 손상되어 표준 XML 파서가 이전에 수정하지 않고서는 그것을 먹지 않을 수도 있습니다. – hakre

+0

명확하게 깨진 XML이 아닙니다. 현재 사용자가 입력 한 텍스트가 정말 이상하다고 생각합니다. 오픈 오피스에 복사/붙여 넣기를 시도한 다음 수정하지 않고 복사/붙여 넣기를 다시 한 후 RSS 피드를 다시 생성하고 작업했습니다. – Kai

+0

사용자가 텍스트를 입력 할 수 있고 입력 된 텍스트가 잘못 처리되면 잘못된 XML RSS 피드가 만들어지고 실제로 XML이 손상됩니다. 물론 XML 자체가 손상되지는 않았지만 (입력 된 데이터에 의해) XML이 손상되었다는 것은 acutally 사용자가 보는 오류 메시지입니다. 따라서 먼저 여기에서 이유에 대한 오류가 있음을 확인해야합니다. – hakre

답변

-1

사용자 입력을 UTF-8로 올바르게 인코딩했는지 확인하십시오.

http://php.net/manual/de/function.utf8-encode.php

string utf8_encode (string $data) 
+0

아니요, 사용자 입력 주위에 배치하면 일본어가 더 이상 올바르게 표시되지 않습니다. rss 피드가 여전히 부적절한 인코딩을보고하고 있습니다. – Kai

+0

그냥 재미있는 기능을 던지고 있습니까? 질문의 첫 번째 문장에서 : * "일본어로 텍스트를 입력하는 사용자가 많습니다."* - utf8_encode는 일본어 텍스트 용으로 작성되지 않았습니다. – hakre

+0

그냥 재미로. 진심이야? 나는 도우려고 노력하지만, 당신의 대답은 무의미합니다. 이 콘텐츠로 솔루션을 검색하거나 응답을 중지하십시오. – montelyno