사용자 입력 데이터에서 생성되는 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을 보았습니다. 그러나이 특정 피드에서 인코딩이 실패하는 이유와 혼동 스럽습니다. 다른 방식으로 인코딩 된 일본어, 다른 사람이 다른 방법으로 입력을 감지 할 수있는 방법, 문제를 일으킬 수있는 언어 만 선택적으로 수정하는 방법
나는 다음과 같은 추가하는 시도 :이 문서 당
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이라고 생각하는 이유는 무엇입니까?하지만 여전히 이러한 인코딩 오류가 발생하고 있습니까?
당신은 문제의 실제 피드를 보여 놓쳤다. XML이 이미 피드에서 손상되어 표준 XML 파서가 이전에 수정하지 않고서는 그것을 먹지 않을 수도 있습니다. – hakre
명확하게 깨진 XML이 아닙니다. 현재 사용자가 입력 한 텍스트가 정말 이상하다고 생각합니다. 오픈 오피스에 복사/붙여 넣기를 시도한 다음 수정하지 않고 복사/붙여 넣기를 다시 한 후 RSS 피드를 다시 생성하고 작업했습니다. – Kai
사용자가 텍스트를 입력 할 수 있고 입력 된 텍스트가 잘못 처리되면 잘못된 XML RSS 피드가 만들어지고 실제로 XML이 손상됩니다. 물론 XML 자체가 손상되지는 않았지만 (입력 된 데이터에 의해) XML이 손상되었다는 것은 acutally 사용자가 보는 오류 메시지입니다. 따라서 먼저 여기에서 이유에 대한 오류가 있음을 확인해야합니다. – hakre