PHP ajax의 잘못된 값에 대한 해결 방법: 1. 앞 페이지와 뒷 페이지 및 데이터베이스에 UTF8 인코딩을 사용합니다. 2. 데이터베이스에 저장할 때 "mysql_query("set names gb2312");" 메서드를 사용합니다. ICONV 함수는 데이터베이스에서 검색된 문자열의 인코딩을 변환합니다.
추천: "PHP Video Tutorial"
PHP 웹사이트 개발에서 사용자 경험을 높이기 위해 Ajax는 자주 사용되는 기술이지만, 초보자의 경우 Ajax가 자주 접하게 되는 한자가 깨져 나오는 문제 PHP AJAX에 의해 전달될 때 문자열이 전달될 때 중국어 문자가 왜곡되는 문제를 해결할 수 있는 방법이 있습니까?
Ajax 기술은 JavaScript에서 발전한 것으로 알고 있으며, JavaScript는 UTF-8 인코딩을 사용합니다. 현재 백그라운드 페이지에서 GBK 또는 기타 인코딩을 사용하고 인코딩 변환을 수행하지 않으면 한자가 깨지는 문제가 발생합니다.
PHP Ajax 값 전송에서 한자가 깨졌을 때 해결 방법
방법 1. 앞 페이지와 뒷 페이지 및 데이터베이스는 UTF8 인코딩을 균일하게 사용합니다.
방법 2: 웹 사이트가 GBK/GB2312와 같은 인코딩을 채택한 경우 두 가지 상황이 있습니다:
1. Ajax가 한자를 보내고 PHP(백그라운드 프로그램)가 잘못된 문자를 수신하면 GBK와 UTF8 간의 변환 기능을 사용하여 수신된 문자열은 인코딩된 후 해당 데이터베이스에 저장됩니다. 데이터베이스에서 사용하는 인코딩은 GBK 또는 GB2312라고 가정합니다. 구성된 PHP 운영 환경이 ICONV 기능을 지원하는 경우 ICONV 기능을 사용하여 인코딩 변환을 수행할 수도 있습니다.
mysql_query("set names gb2312");
는 Ajax 값 전송의 중국어 왜곡 문제를 해결할 수 있습니다.
2. PHP가 한자를 보내고 Ajax(첫 페이지)가 잘못된 문자를 받을 때 ICONV 함수를 사용하여 데이터베이스에서 가져온 문자열의 인코딩을 변환한 다음 해당 값을 Ajax 프런트 데스크에 전달할 수도 있습니다. is, responseText입니다. 아니면 PHP(백엔드 프로그램) 출력 문자 스트림 앞에
header('Content-type: text/html;charset=gb2312');
를 추가하세요. 특별 지적 사항: Ajax를 사용하여 다단계 연결(예: 성-도시 연결)을 수행하는 경우 XML 대화형 형식을 사용하고 XML을 출력하기 전에 헤더도 추가해야 합니다.
동시에 GB2312 및 UTF8 변환 기능이 게시되어 모든 사람이 Ajax 중국어 문자 깨짐 문제에 직면할 때 다른 해결책을 찾을 수 있습니다.
function gb2utf8($gb,$filename) { if(!trim($gb)) return $gb; //$filename="gb2312.txt"; $tmp=file($filename); $codetable=array(); while(list($key,$value)=each($tmp)) $codetable[hexdec(substr($value,0,6))]=substr($value,7,6); $utf8=""; while($gb) { if (ord(substr($gb,0,1))>127) { $thisgb=substr($gb,0,2); $gb=substr($gb,2,strlen($gb)); $utf8.=u2utf8(hexdec($codetable[hexdec(bin2hex($thisgb))-0x8080])); } else { $gb=substr($gb,1,strlen($gb)); $utf8.=u2utf8(substr($gb,0,1)); } } $ret=""; for($i=0;$i<strlen($utf8);$i+=3) $ret.=chr(substr($utf8,$i,3)); return $ret; } function u2utf8($c) { for($i=0;$i<count($c);$i++) $str=""; if ($c < 0x80) { $str.=$c; } else if ($c < 0x800) { $str.=(0xC0 $c>>6); $str.=(0x80 $c & 0x3F); } else if ($c < 0x10000) { $str.=(0xE0 $c>>12); $str.=(0x80 $c>>6 & 0x3F); $str.=(0x80 $c & 0x3F); } else if ($c < 0x200000) { $str.=(0xF0 $c>>18); $str.=(0x80 $c>>12 & 0x3F); $str.=(0x80 $c>>6 & 0x3F); $str.=(0x80 $c & 0x3F); } return $str; }
참고: 이 기능을 사용하려면 GB2312 중국어 인코딩 테이블이 필요합니다. 다운로드하려면 여기를 클릭하세요. gb2312가 사용되므로 변환 중에 일부 희귀 단어가 깨질 수 있습니다.
위 내용은 PHP Ajax에서 잘못된 값 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!