PHP로 json 데이터를 내보내는데 한글이 "null"로 나왔다
json_encode() 함수가 UTF-8 이외의 인코딩 형식의 문자열을 처리하는데
어려움을 겪는다더라~
한글이 EUC-KR과 같은 다른 문자 집합으로 인코딩되어 있을 때 발생할 수 있다
PHP의
array_walk_recursive() 함수 와 mb_convert_encoding() 함수를
사용하여 해결해보자
$sql = "쿼리문~~~";
$result = mysqli_query($sql) ~~~~
$row = mysqli_fetch_assoc($result);
array_walk_recursive($row, function (&$value) {
// 데이터를 UTF-8로 변환
$value = mb_convert_encoding($value, 'UTF-8', 'EUC-KR');
});
// UTF-8로 변환된 데이터를 JSON으로 인코딩
echo json_encode(['status' => 'success', 'data' => $row]);
다차원 배열의 모든 값을 돌면서 지정된 콜백 함수를 적용한다
EUC-KR에서 UTF-8로 변환하는 작업을 수행
이제 ajax 콜백함수에서 받아보자
success: function (response) {
if (response.status === "success") {
const name = response.data.name;
}
}