latin1_swedish_ci 인코딩을 사용하는 데이터베이스에서 악센트 부호 문자를 검색하고 json_encode()를 사용하여 JSON으로 인코딩하려고 할 때, 결과는 예상치 못한 것일 수 있습니다. "Abord â Plouffe"와 같은 의도한 결과가 "null"로 변환되어 인코딩된 JSON이 유효하지 않게 렌더링됩니다.
이 문제를 해결하려면 검색된 값을 명시적으로 UTF-8로 인코딩해야 합니다. json_encode()를 적용합니다. 이렇게 하면 JSON 출력에 올바른 UTF-8 문자가 포함되고 이에 따라 유효성이 검사됩니다. 이 솔루션을 구현하는 방법은 다음과 같습니다.
// 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);
이 수정된 코드에서는 array_map 함수를 활용하여 결과 집합에 있는 모든 행의 각 요소에 utf8_encode를 적용합니다. 이렇게 하면 json_encode가 실행되기 전에 모든 문자가 UTF-8로 올바르게 인코딩됩니다. 결과적으로 결과 JSON 출력은 의도한 문자를 정확하게 반영하고 원하는 대로 악센트 문자를 유지합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3