PHP 주소 표시줄의 중국어 $_GET이 깨져서 urlencode, urldecode 사용법이 자세히 설명되어 있습니다.
url 인코딩
구문: string urlencode(string str);
반환값: string
기능 유형: 인코딩 처리
예:
<?php $ChineseName="我的名字,是中文的哦"; $EncodeStr=urlencode($ChineseName); echo "<a href=/cgi/personal.cgi?name=$EncodeStr>我的名字</a>"; ?>
url 디코딩
URL 인코딩 문자열을 복원합니다.
구문: string urldecode(string str);
반환값: 문자열
함수 유형: 인코딩 처리
예:
앞에 전달된 중국어를 처리하여 표시
<?php $DecodeStr=urldecode($_GET['name']);//你可能不用解码都可以,因为浏览器会自动帮你解码 echo $DecodeStr; ?>
PHP에서 get 메소드를 사용하여 URL에서 얻은 중국어 문자가 왜곡되는 문제
$gonghui = iconv("gb2312","UTF-8",$gonghui); 사용
/* *
* 멀티바이트 문자열 인코딩 변환 함수
*
* @param string str 인코딩 및 변환이 필요한 문자열
* @param string to_encoding은 다음과 같은 특정 인코딩으로의 변환을 지정합니다. : gb2312, gbk, utf-8 등
* @param mix from_encoding은 원래 문자열의 인코딩을 혼합 지정합니다. 예: JIS, eucjp-win, sjis-win 혼합 인코딩을 동시에 지정
* @return string
string mb_convert_encoding ( string str, string to_encoding [, mix from_encoding] )
**/
mb_convert_encoding 함수는 PHP의 내부 멀티바이트 문자열 인코딩 변환 함수로, 필요할 때 거의 모든 인코딩을 지원할 수 있습니다. PHP >= 4.0.6, 5개 버전이 지원됩니다.
reg.php?gh=XX 직접 가져오기
// Union 로그인 매개변수
$gonghui = $_GET['gh'];
획득한 $gonghui는 gb2312로 인코딩되어 잘못된 문자를 표시하기 위해 utf-8 웹페이지에 출력됩니다.
가
로 변경됨 // Union 로그인 매개변수
$gonghui = $_GET['gh' ];
$gonghui = mb_convert_encoding($gonghui, "UTF-8", "gb2312");
정상적으로 표시됩니다
전체 페이지를 변환합니다
이 방법은 모든 코딩 환경에서 작동합니다. 이러한 방식으로 처음 128자(표시 문자)를 제외한 모든 문자 세트는 NCR로 표시됩니다("한자"와 같은 숫자 문자 참조는 "한자"로 변환됩니다). 이 인코딩은 페이지에서 사용할 수 있습니다. 모든 인코딩 환경에서 정상적으로 표시됩니다.
php 파일의 헤드에 다음 세 줄의 코드를 추가합니다.
mb_internal_encoding("gb2312"); // 这里的gb2312是你网站原来的编码 mb_http_output("HTML-ENTITIES"); ob_start('mb_output_handler');
mb_convert_encoding 함수를 사용하려면 PHP의 mbstring(멀티바이트 문자열) 확장을 활성화해야 합니다.
PHP의 mbstring 확장이 활성화되지 않은 경우, PHP가 확장을 지원할 수 있도록 다음 설정을 지정해야 합니다.
1. Windows 서버 환경
php.ini 파일을 편집하고 확장명=php_mbstring.dll 앞의 ;를 제거한 후 웹 서버를 다시 시작합니다.
2. Linux 서버 환경
구성 컴파일 시 --enable-mbstring=cn 컴파일 매개변수를 추가한 후 PHP를 컴파일하고 설치합니다.
다른 네티즌의 세 번째 참고 방법:
//방법 1 urldecode
$url = 'aaa.php?region='.urldecode("사천성");
< ; a href="">aaa
//방법 2 base64_encode
<
$test = "쓰촨성";
$test1=base64_encode($test);
echo 'aaa '; 🎜>?>
lc_ctype="zh_cn.utf-8"
lc_numeric="zh_cn.utf-8"
lc_time = c
lc_collate=c
lc_monetary="zh_cn.utf-8"
lc_messages="zh_cn.utf-8"
lc_paper="zh_cn.utf-8"
lc_name=" zh_cn .utf-8"
lc_address="zh_cn.utf-8"
lc_telephone="zh_cn.utf-8"
lc_measurement="zh_cn.utf-8"
lc_identification="zh_cn. -8"
lc_all=
[root@dhcp ~]#