PHP 배열의 JSON 인코딩 문제
질문:
PHP의 json_encode( ) 함수를 사용하여 MySQL 테이블 데이터를 JSON으로 변환했지만 이상한 동작이 발생했습니다. 이 함수는 특정 쿼리, 특히 특수 문자나 특정 대륙 코드가 포함된 쿼리에 대한 데이터를 인코딩하지 않습니다.
코드 조각:
<code class="php">$result = mysqli_query($con, "SELECT * FROM countries WHERE continent_code='EU'") or die(mysqli_error($con)); while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { $orders[] = array( 'CountryCode' => $row['code'], 'CountryName' => $row['name'] ); } echo json_encode($orders);</code>
관찰:
문제:
json_encode() 함수를 사용하려면 들어오는 모든 데이터가 UTF-8로 인코딩되어야 합니다. 특수 문자 및 특정 대륙 코드는 데이터베이스에서 또는 데이터 조작 중에 제대로 인코딩되지 않을 수 있습니다.
해결책:
웹 애플리케이션 전체에서 UTF-8 인코딩을 확인하세요. 여기에는 다음이 포함됩니다.
RFC4627에 따르면 "JSON 텍스트는 유니코드로 인코딩되어야 합니다. 기본 인코딩은 UTF-8입니다." UTF-8 인코딩을 보장함으로써 json_encode()는 내용에 관계없이 모든 데이터를 올바르게 처리할 수 있습니다.
위 내용은 PHP의 특정 대륙 코드에서 `json_encode()`가 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!