[JSON] 유니코드 에러 (json객체 반환 시 한글이 유니코드로 나올 때) > 기술자료 | 해피정닷컴

[JSON] 유니코드 에러 (json객체 반환 시 한글이 유니코드로 나올 때) > 기술자료

본문 바로가기

사이트 내 전체검색

[JSON] 유니코드 에러 (json객체 반환 시 한글이 유니코드로 나올 때) > 기술자료

JavaScript [JSON] 유니코드 에러 (json객체 반환 시 한글이 유니코드로 나올 때)

페이지 정보


본문

PHP 에서 Array 형 데이터를 JSON 포멧으로 출력하고자 하는 경우 json_encode 함수를 호출함으로써 간단하게 데이터 변환이 가능합니다.
단, 해당 함수는 UTF-8 형태의 String 값만을 사용할 수 있기 때문에 iconv 를 사용하여 UTF-8 인코딩을 하여 사용해야만 합니다.
그런데 여기서 문제가 발생하는데, 한글 데이터를 사용할 경우 json_encode 함수가 한글을 유니코드 형태로 자동으로 변환해서 출력하게끔 되어 있습니다.

[{"shop_idx":"1","shop_id":"shop1","shop_name":"\ub9c8\ud3ec\uac08\ub9e4\uae30 \ubcf8\uc8101"}]

PHP 5.4 버전 이상을 사용할 경우, 다음과 같이 상수 변수 값을 옵션으로 간단하게 해결이 가능합니다.
<?php
echo json_encode($arrJson, JSON_UNESCAPED_UNICODE);
?>
결과값
[{"shop_idx":"1","shop_id":"shop1","shop_name":"마포갈매기 본점1"}]


하위 버전 PHP를 사용하는 경우 json_encode 함수가 옵션 값을 받지 않기 때문에 해당 방법을 사용 할 수 없습니다.
아래와 같이 함수를 추가해서 한글 변환을 해줘야 합니다.

<?php 
// 유니코드 에러 (json객체 반환 시 한글이 유니코드로 나올 때)
function raw_json_encode($input) {
    return preg_replace_callback(
        '/\\\\u([0-9a-zA-Z]{4})/',
        function ($matches) {
            return mb_convert_encoding(pack('H*',$matches[1]),'UTF-8','UTF-16');
        },
        json_encode($input)
    );
}
?>


참고자료
https://woo-dev.tistory.com/11
https://ittravelkr.tistory.com/30

댓글목록

등록된 댓글이 없습니다.


Total 2,639건 3 페이지
  • RSS
기술자료 목록
2599
HTML   4469  2023-04-07 09:52 ~ 2023-04-07 09:59  
2598
그누보드   3329  2023-04-07 08:45 ~ 2023-04-07 10:00  
2597
그누보드   3943  2023-04-06 22:37  
2596
Editor   4005  2023-03-31 09:54 ~ 2023-03-31 12:51  
2595
Android   6993  2023-03-29 16:25 ~ 2023-11-21 13:33  
2594
Linux   3130  2023-03-28 18:09 ~ 2023-03-28 18:11  
2593
Android   3745  2023-03-07 12:06 ~ 2023-03-20 11:02  
2592
Android   3459  2023-03-07 11:28 ~ 2023-03-07 11:35  
2591
호스팅   3398  2023-03-06 15:52 ~ 2023-12-18 16:54  
2590
JavaScript   3746  2023-02-27 17:26 ~ 2023-12-06 08:33  
열람
JavaScript   4058  2023-02-22 17:33 ~ 2023-02-24 21:08  
2588
호스팅   4124  2023-02-17 17:17  
2587
그누보드   3687  2023-02-03 16:25  
2586
HTML   3550  2023-02-02 13:54 ~ 2023-02-03 06:02  
2585
Search   3850  2023-02-01 15:16 ~ 2023-02-01 16:15  
2584
MySQL   3169  2023-01-30 12:11 ~ 2023-01-30 12:23  
2583
JavaScript   4377  2023-01-27 17:42  
2582
영카트   2574  2023-01-27 11:18 ~ 2023-01-27 14:12  
2581
그누보드   2329  2023-01-20 19:39 ~ 2023-01-20 23:13  
2580
Search   3167  2023-01-18 20:05 ~ 2023-01-18 20:35  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2024 해피정닷컴. All Rights Reserved.