php tips(json 에서 중국 어 를 보 내 는 것 은 null 문제 입 니 다)

php 에서 json 을 사용 하여 데 이 터 를 전달 할 때 null 상황 이 발생 합 니 다.
json_encode()함 수 는 기본적으로 utf 8 인 코딩 을 사용 합 니 다.중국어 가 나 올 때 utf 8 인 코딩 이 아니라면 null 상황 이 발생 할 수 있 습 니 다.사용 해 야 합 니 다.
방법 1:
$array = array('title'=>iconv('gb2312','utf-8','       '),'body'=>'abcd...'); 
echo json_encode($array); 
//            :
//{"title":"u8fd9u91ccu662fu4e2du6587u6807u9898","body":"abcd..."}

iconv 함 수 는 php 의 기본 함수 가 아니 라 기본 설 치 된 모듈 입 니 다.설치 해 야 사용 할 수 있 습 니 다.php.ini 파일 을 수정 할 수 있 습 니 다.extension=php"iconv.dll 앞의";"제거 하 는 동시에 원 phop 설치 파일 에 있 는 iconv.dll 을 winnt/system 32 로 복사 해 야 합 니 다.인 코딩 을 바 꾸 는 역할 을 합 니 다.
$str = "        ,   ";
iconv("gbk","utf8",$str)//    string    utf8   gbk;

방법
/*    GBK   UTF-8,       。 */
function ct2($s){
    if(is_numeric($s)) {//is_numeric —                
        return intval($s);
    } else {
        return iconv("GBK","UTF-8",$s);
    }
}
/*     gbk->utf-8 */
function icon_to_utf8($s) {
  if(is_array($s)) {
    foreach($s as $key => $val) {
      $s[$key] = icon_to_utf8($val);//          
    }
  } else {
      $s = ct2($s);
  }
  return $s;
}
echo json_encode(icon_to_utf8("  "));

방법 3:
/**************************************************************
* *     function           
* @param    string    &$array               
* @param    string    $function          
* @return boolean    $apply_to_keys_also              key 
* @access public
* *************************************************************///                  
function arrayRecursive(&$array, $function, $apply_to_keys_also = false)
{
 foreach ($array as $key => $value) {
 if (is_array($value)) {
 arrayRecursive($array[$key], $function, $apply_to_keys_also);
 } else {
 $array[$key] = $function($value);
 }
 if ($apply_to_keys_also && is_string($key)) {
 $new_key = $function($key);
 if ($new_key != $key) {
 $array[$new_key] = $array[$key];
 unset($array[$key]);
 }
 }
 }
}
/**************************************************************
* *       JSON   (    )
* @param    array    $array              
* @return string             json   
* @access public
* *************************************************************/
function JSON($array) {
 arrayRecursive($array, 'urlencode', true);
 $json = json_encode($array);
 return urldecode($json);
}

좋은 웹페이지 즐겨찾기