db에 들어가면 한글이 unicode 로 바뀝니다.

db에 들어가면 한글이 unicode 로 바뀝니다.

QA

db에 들어가면 한글이 unicode 로 바뀝니다.

답변 2

본문

일단 제가 너무 몰라서 그럽니다~

rest 테스트로 post 로 넘어온 값들 테스트 중 입니다.
post 로 받은 json 데이터 처리 페이지에서.
mysql 에 입력하면 한글이 아래처럼 unicode 로 바뀌어서 저장이 됩니다.
echo 로 하면 제대로 된 한글로 나옵니다.
(다른 페이지에서 처리 한값은 제대로 한글로 들어갑니다.)

{
"id":90,
"billing":{
"first_name":"\ud64d\uae38\ub3d9",    //홍길동
"city":"\uacbd\uae30"    //경기
}
}

이렇게요.
어디를 손봐야 할까요..
* 다른 페이지에서 처리되는 값들은 제대로 처리 되기에 db 설정을 바꾸는건 안됩니다. ;;;
* 파일 타입은 ansi 가 아니라 utf-8 입니다.

//header('Content-Type: text/html; charset=utf-8'); // 이거도 안되고..
//header('Content-Type: application/json; charset=utf-8'); // 이거도 안되고..
$test1 = $_POST['order_data'];
//$test1 = json_encode( $test1, JSON_UNESCAPED_UNICODE ); // 이거도 안되고..
$test1 = json_encode( $test1 );
 
$sql  = "INSERT INTO test(val1) VALUES (".$test1.")";
// mysqli_query($conn, "set session character_set_connection=utf8;"); // 이거도 안되고..
// mysqli_query($conn, "set session character_set_results=utf8;"); // 이거도 안되고..
// mysqli_query($conn, "set session character_set_client=utf8;"); // 이거도 안되고..
// mysqli_set_charset($conn, "utf8"); // 이거도 안되고..
// mysqli_set_charset($conn, "utf8mb4"); // 이거도 안되고..
$resut=mysqli_query($conn,$sql);

#DB

이 질문에 댓글 쓰기 :

답변 2

1. echo $sql; 찍어서 쿼리문에 한글이 제대로 들어가 있으면 컬럼에 인코딩 문제
2. 쿼리문에 한글이 깨진다면 페이지 인코딩 문제
1번에 경우 컬럼 또는 테이블에 인코딩이 뭘로 되어있나 확인해보세요.
2번에 경우 iconv(문자열 charset, 변경할 charset, 문자열) 를 사용하여 인코딩을 마춰주세요.

mysqli_query($conn, "set session character_set_connection=utf8mb4 ;");
mysqli_query($conn, "set session character_set_results=utf8mb4 ;");
mysqli_query($conn, "set session character_set_client=utf8mb4 ;");
mysqli_query($conn, "set collation_connection=utf8mb4_unicode_ci ;");

DB설정을 바꾸실수 없다면 데이터를 불러와서 다시 가공작업을 해야할꺼 같습니다.

해당 유사한 사례가 있으므로 아래 링크값을 남겨 드리니 참고하시기 바랍니다.

 

https://blogchannel.tistory.com/164

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 1
© SIRSOFT
현재 페이지 제일 처음으로