>  기사  >  백엔드 개발  >  PHP의 json_encode 함수가 대륙 코드를 기반으로 데이터를 일관되지 않게 인코딩하는 이유는 무엇입니까?

PHP의 json_encode 함수가 대륙 코드를 기반으로 데이터를 일관되지 않게 인코딩하는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-30 08:08:021071검색

Why is PHP's json_encode Function Encoding Data Inconsistently Based on Continent Code?

PHP의 json_encode에서 JSON 인코딩 불규칙성

이 문제는 PHP의 json_encode() 함수를 사용하여 데이터베이스 테이블 데이터를 JSON으로 인코딩하려고 할 때 발생합니다. 흥미롭게도 동작은 입력 데이터에 따라 다릅니다.

"SELECT FROM 국가 WHERE continent_code='AS'"와 같은 쿼리는 성공적으로 JSON 값을 반환하는 반면, "SELECT FROM 국가와 같은 다른 쿼리는 성공적으로 반환됩니다. continent_code='EU'"인 경우 그렇게 하지 마세요. 놀랍게도 'EU', 'NA', 'AF'와 같은 대륙 코드는 나머지 코드와 다르게 동작합니다.

코드를 검토한 결과 문제가 json_encode() 함수에 있음을 알게 되었습니다.

<code class="php">while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
  $orders[] = array(
    'CountryCode' => $row['code'],
    'CountryName' => $row['name']
  );
}

echo json_encode($orders);</code>

데이터는 json_encode()에 전달되기 전에 $orders 배열에 성공적으로 채워집니다. 하지만 특정 대륙 코드에서는 해당 기능이 인코딩되지 않습니다.

이 문제를 해결하는 열쇠는 웹 애플리케이션 전체에서 UTF-8 인코딩을 보장하는 것입니다.

  • PHP 구성: 모든 파일의 인코딩을 UTF-8로 설정합니다.
  • 데이터베이스 구성: 데이터베이스의 문자 집합을 UTF-8로 지정합니다.
  • 브라우저 구성: 브라우저가 UTF-8 인코딩을 사용하도록 구성되어 있는지 확인하세요.

이러한 지침을 준수하면 JSON 인코딩의 불규칙성을 해결하고 일관된 동작을 보장할 수 있습니다. 모든 입력 데이터에 대한 코드입니다.

위 내용은 PHP의 json_encode 함수가 대륙 코드를 기반으로 데이터를 일관되지 않게 인코딩하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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