■ 백엔드 ■/PHP2018.06.04 11:31

   json 한글이 ?로 깨질때



php에서 json값을 출력할때 header에 charset utf-8 로 지정해줘도 한글이 ??? 로 

표시될때가 있다.


header("Content-type: application/json; charset=utf-8");
echo json_encode($res);


원인 : json에서 값 받아올때 DB에서 캐릭터셋이 지정되어있지 않은경우이다.

DB connect 할때 charset 을 지정하는 옵션에서 utf8 로 지정해 주어야 한다.



mysqli

$conn = new mysqli("localhost", "root", "", "test");

if ( $conn->connect_errno ){
  die("Could not connect to database!");
}

/* change character set to utf8 */
if (!$conn->set_charset("utf8")) {
  printf("Error loading character set utf8: %s\n", $conn->error);
  exit();
}


PDO

<?php
$dbHandle = new PDO("mysql:host=$dbHost;dbname=$dbName;charset=utf8", $dbUser, $dbPass,
                    array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));


mysql_connect

<?php
$link = mysql_connect('localhost', 'user', 'password');
mysql_set_charset('utf8',$link);
$db_selected = mysql_select_db('emp_feedback', $link);




Posted by SAP (Study And Programming) by serpiko

댓글을 달아 주세요