반응형
[PHP]json_encode 유니코드 오류 php 5.3버전
php에서 json_encode 실행시 한글부분이 유니코드화 되버리는 경우가 발생한다. 여러가지로 삽질을 했는데
일본 웹에서 해당 내용을 찾을 수 있었다.
- 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)
- );
- }
- $arr = array('변수'=>'내용');
원래코드대로 하면
$arr = array("한글써보자");
$newarr = json_encode($arr);
이렇게 작성만 하면 json_encode 시 정상적으로 넘어가야 하지만
유니코드화 되버려서 한글이 깨지는 상황이 발생하기도 한다. (utf-8 환경에서도 발생하는 경우 있음)
php 5.4버전의 경우 json_encode($arr,JSON_UNESCAPED_UNICODE) 이렇게 처리해주면 되지만
그 이하 버전에서는 작동을 하지 않는다.
그러므로 위에 함수를 선언해주고, json_encode 해주면 유니코드화가 적용되지 않고 정상적으로 encode가 된다.
$arr = array("한글써보자");
$newarr = json_encode($arr); 이 구문을 아래로 바꿔서 작성하면 된다.
=> $newarr = raw_json_encode($arr);
출처 : http://www.phppro.jp/qa/4026
반응형
'Program > PHP' 카테고리의 다른 글
[홈페이지만들기/쇼핑몰만들기] 네이버페이 독립몰 연동 순서 (0) | 2018.09.14 |
---|---|
RSS 피드를 이용해 인기 급상승 구글트렌드 검색 가져오기 (0) | 2017.11.27 |
curl 설치 및 사용법 - HTTP GET/POST, REST API 연계 - PHP CURL 로 Json data POST 하기 (0) | 2017.07.20 |
[PHP]curl을 이용한 REST api 사용예제 (1) | 2017.07.19 |
PHP FTP 함수 (0) | 2017.03.08 |
댓글