latin1_swedish_ci 인코딩을 사용하는 데이터베이스에서 악센트 부호 문자를 검색하고 json_encode()를 사용하여 JSON으로 인코딩하려고 할 때, 결과는 예상치 못한 것일 수 있습니다. "Abord â Plouffe"와 같은 의도한 결과가 "null"로 변환되어 인코딩된 JSON이 유효하지 않게 렌더링됩니다.
이 문제를 해결하려면 검색된 값을 명시적으로 UTF-8로 인코딩해야 합니다. json_encode()를 적용합니다. 이렇게 하면 JSON 출력에 올바른 UTF-8 문자가 포함되고 이에 따라 유효성이 검사됩니다. 이 솔루션을 구현하는 방법은 다음과 같습니다.
<code class="php">// Initialize an empty array for the encoded result set $rows = array(); // Iterate over the PHPMyAdmin result set while ($row = mysql_fetch_assoc($result)) { // Apply UTF-8 encoding to each row value $rows[] = array_map('utf8_encode', $row); } // Output the encoded $rows echo json_encode($rows);</code>
이 수정된 코드에서는 array_map 함수를 활용하여 결과 집합에 있는 모든 행의 각 요소에 utf8_encode를 적용합니다. 이렇게 하면 json_encode가 실행되기 전에 모든 문자가 UTF-8로 올바르게 인코딩됩니다. 결과적으로 결과 JSON 출력은 의도한 문자를 정확하게 반영하고 원하는 대로 악센트 문자를 유지합니다.
위 내용은 json_encode()가 Latin1 인코딩을 사용하는 MySQL 데이터베이스의 악센트 문자를 인코딩하지 못하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!