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 인코딩을 보장하는 것입니다.
이러한 지침을 준수하면 JSON 인코딩의 불규칙성을 해결하고 일관된 동작을 보장할 수 있습니다. 모든 입력 데이터에 대한 코드입니다.
위 내용은 PHP의 json_encode 함수가 대륙 코드를 기반으로 데이터를 일관되지 않게 인코딩하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!