>  기사  >  백엔드 개발  >  PHP에서 전달된 매개변수가 왜 깨졌나요?

PHP에서 전달된 매개변수가 왜 깨졌나요?

藏色散人
藏色散人원래의
2021-12-22 10:23:141989검색

PHP 매개변수가 왜곡되는 이유는 인코딩이 일관되지 않기 때문입니다. 해결 방법은 "mb_Detect_encoding($typeName,'CP936,UTF-8')"과 같이 수정 코드를 사용하는 것입니다. .

PHP에서 전달된 매개변수가 왜 깨졌나요?

이 문서의 운영 환경: Windows 7 시스템, PHP 버전 7.1, Dell G3 컴퓨터.

PHP 매개변수가 왜곡되는 이유

php 매개변수가 왜곡되는 솔루션

웹사이트 프로젝트가 gb2312를 프로젝트 인코딩으로 사용하는 경우 브라우저마다 한자를 다르게 인코딩할 수 있으므로 일부는 중국어를 웹사이트 인코딩으로 인코딩하고 일부는 인코딩합니다. 중국어를 utf-8로 변환하면 백그라운드에서 매개변수를 수신할 때 왜곡된 오류가 발생합니다. 더 나은 해결책은 매개변수에서 한자를 식별하고 gb2312가 아닌 경우 변환하는 것입니다.

$typeName = $_GET['typeName'];
$encode =  mb_detect_encoding($typeName,'CP936,UTF-8') ;
//如果是CP936,就是gbk编码,如果是UTF-8, 就是utf-8编码
if ($encode =='UTF-8') {
    //再调用转换成utf-8编码的函数,最终确保是utf-8
    $typeName = iconv("utf-8","gb2312",$typeName);
}

웹사이트 코딩 문제 및 향후 확장을 위해 uft-8 인코딩을 사용하는 것이 좋습니다

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP에서 전달된 매개변수가 왜 깨졌나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.