>  기사  >  백엔드 개발  >  XML을 사용하는 PHP의 simplexml_load_string에서 \"입력이 올바른 UTF-8이 아닙니다\" 오류를 해결하는 방법은 무엇입니까?

XML을 사용하는 PHP의 simplexml_load_string에서 \"입력이 올바른 UTF-8이 아닙니다\" 오류를 해결하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-24 07:13:02623검색

How to Resolve

PHP에서 simplexml_load_string을 사용하여 XML을 로드할 때 잘못된 UTF-8 인코딩 처리

외부 소스에서 XML 응답을 처리할 때 오류가 발생할 수 있습니다. : "입력이 올바른 UTF-8이 아닙니다. 인코딩을 표시하세요!" 선언된 인코딩과 실제 콘텐츠의 불일치로 인해 발생합니다.

문제 식별

선언된 인코딩과 XML 콘텐츠를 비교 확인하세요. 정말 UTF-8이 아니라면 인코딩 비호환성을 전처리하고 수정하는 솔루션을 찾아야 합니다.

전처리 옵션

  • utf8_encode(): 이 함수를 사용하면 문제를 해결할 수 있지만 XML에 유효한 UTF-8과 기타 문자 집합이 모두 포함되어 있으면 mojibake가 발생할 수 있습니다.
  • iconv() 또는 mbstring: 유효하지 않은 문자를 무시하고 문자열을 UTF-8에서 UTF-8로 변환하려고 시도합니다.

수동 검증 및 수정

이것은 접근 방식은 UTF-8에 대한 지식이 필요하고 복잡하지만 정확한 수정이 가능합니다.

부분적 해결 방법

임시 해결 방법의 경우 아래 제공된 기능을 사용하여 일부 문제를 해결하는 것이 좋습니다. 인코딩 문제:

<code class="php">function fix_latin1_mangled_with_utf8_maybe_hopefully_most_of_the_time($str)
{
    return preg_replace_callback('#[\xA1-\xFF](?![\x80-\xBF]{2,})#', 'utf8_encode_callback', $str);
}

function utf8_encode_callback($m)
{
    return utf8_encode($m[0]);
}</code>

모범 사례

영구적인 수정을 요청하려면 잘못된 인코딩에 대해 데이터 제공자에게 알립니다. 문자 인코딩을 올바르게 처리하면 상호 운용성이 보장되고 예상치 못한 동작이 방지됩니다.

위 내용은 XML을 사용하는 PHP의 simplexml_load_string에서 \"입력이 올바른 UTF-8이 아닙니다\" 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.