New World

[PHP/DB] 한글이 숫자로 나올 때 본문

Programming/Bug Zero

[PHP/DB] 한글이 숫자로 나올 때

hyeovi 2020. 6. 15. 19:46
728x90
반응형

php 와 DB를 만지다 보면 생기는 일이다, 아래는 이와 같은 해결법을 제시했던 사이트들이 들어가 있다.

참고로 나는 php 에서 해결되지 않아 안드로이드에서 해결하였다.

유니코드인지 확인해 볼 수 있는 사이트이다. 한글로 내가 출력할 것을 써서 돌려보면 똑같은 형식의 문자열이 나타난다면 유니코드로 의심해볼 수 있다.

 

coderstoolbox.net/string/#!encoding=xml&action=encode&charset=us_ascii

 

1. json 인코딩을 JSON_UNESCAPED_UNICODE로 풀어주는 것

흔한 유니코드를 한글로 보여주게 하는 방법이다.
$출력할 변수명 = json_encode($출력할 함수명,JSON_UNESCAPED_UNICODE);

2. 함수 써보기
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)
        );
}

$출력할 변수명 = raw_json_encode($인코딩 시킬 함수명);


3. 헤더 파일 (유니코드 숫자)
mysqli_set_charset($conn, "utf8");

 

php 파일에서 이런 방법으로 해결되지 않는다면 다른 프로그래밍 언어를 통해 설계 해보는 것을 조심스레 추천드려본다.

반응형
Comments