>  기사  >  백엔드 개발  >  php echo get 매개변수가 왜곡된 경우 어떻게 해야 할까요?

php echo get 매개변수가 왜곡된 경우 어떻게 해야 할까요?

藏色散人
藏色散人원래의
2021-12-01 09:15:071875검색

PHP echo get의 잘못된 매개변수에 대한 해결 방법: 1. "iconv("gb2312","utf-8",$str);"를 사용하여 인코딩을 변환합니다. 2. mb_convert_encoding 함수를 통해 인코딩을 변환합니다.

php echo get 매개변수가 왜곡된 경우 어떻게 해야 할까요?

이 기사의 운영 환경: windows7 시스템, PHP7.4 버전, DELL G3 컴퓨터

php echo get 매개변수가 왜곡되면 어떻게 해야 합니까?

PHP가 GET에서 왜곡된 중국어 매개변수를 수신하는 이유와 해결책

며칠 전 스핑크스를 사용하여 검색 기능을 작성하고 브라우저로 검색 효과를 테스트했지만 중국어 내용을 검색할 수 없었습니다. echo를 사용하여 $_GET으로 얻은 키워드를 출력해 보았는데, UTF-8에서는 페이지 인코딩이 깨졌는데 gb2312로 전환하니 정상이었습니다. 하지만 스핑크스는 UTF-8 한자 검색만 지원하므로 중국어 매개변수를 받는 문제를 해결해야 했습니다.

인터넷에서 검색해보니 "PHP에서 잘못된 코드로 GET 중국어 매개변수를 수신하는 심층 연구"라는 제목의 기사가 있었는데, 이는 브라우저 설정 문제로 인해 주소창에 중국어 매개변수를 직접 입력하면 발생한다고 합니다. 중국어 인터페이스 브라우저에서는 일반적으로 gbk 인코딩으로 매개변수를 받습니다. 이러한 상황에서는 인코딩 문제를 처리하기 위해 PHP에 내장된 트랜스코딩 기능을 사용해야 합니다.

옵션 1:

$str = iconv("gb2312","utf-8",$str);

옵션 2:

mb_convert_encoding($str, "utf-8", "gb2312");

페이지 인코딩 아래의 텍스트 입력 상자를 사용하여 얻은 경우 utf-8 중국어 매개변수를 사용하면 페이지는 기본적으로 해당 인코딩을 현재 인코딩으로 인코딩하므로 이 경우 위의 트랜스코딩 방법을 사용할 필요가 없습니다.

페이지에서 중국어 매개변수 값으로 링크를 생성하려면 utf-8 인코딩 코드 아래에 urlencode()로 한자를 인코딩한 후 링크를 ​​생성해야 합니다.

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

위 내용은 php echo get 매개변수가 왜곡된 경우 어떻게 해야 할까요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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