>  기사  >  백엔드 개발  >  PHP URL 주소 표시줄에 중국어 왜곡 문자가 전송되면 어떻게 해야 합니까?

PHP URL 주소 표시줄에 중국어 왜곡 문자가 전송되면 어떻게 해야 합니까?

coldplay.xixi
coldplay.xixi원래의
2020-07-11 09:20:372556검색

PHP URL 주소 표시줄에 전송된 중국어 왜곡 문자에 대한 해결 방법: 1. urlencode 방법, 코드는 [string urlencode(string str)] 2. urldecode 방법, 코드는 [string urldecode(string str]).

PHP URL 주소 표시줄에 중국어 왜곡 문자가 전송되면 어떻게 해야 합니까?

PHP URL 주소 표시줄에 전송되는 중국어 문자 깨짐에 대한 해결 방법:

PHP 주소 표시줄의 중국어 $_GET이 깨져 있습니다. urlencode 및 urldecode 사용법에 대한 자세한 설명

url 인코딩

    구문: ​​string urlencode(string str );
  • string urlencode(string str);

  • 返回值: 字符串

  • 函数种类: 编码处理

例如:

代码如下:

<?php
$ChineseName="我的名字,是中文的哦";
$EncodeStr=urlencode($ChineseName);
echo "<a href=/cgi/personal.cgi?name=$EncodeStr>我的名字</a>";
?>


url解码

  • 还原 URL 编码字符串。

  • 语法: string urldecode(string str);

  • 返回值: 字符串

  • 函数种类: 编码处理

例如:
对前面传过来的中文进行处理显示

代码如下:

<?php$DecodeStr=urldecode($_GET[&#39;name&#39;]);
//你可能不用解码都可以,因为浏览器会自动帮你解码echo $DecodeStr;?>
关于php用get方法从url上获得的中文乱码问题使用
$gonghui = iconv("gb2312","UTF-8",$gonghui);
另一方法代码
/*** 
多字节字符串编码转换函数
** @param string str 需要进行编码转换的字符串
* @param string to_encoding 指定转换为某种编码,如:gb2312、gbk、utf-8等
* @param mixed from_encoding 混合指定原来字串的编码,如:同时指定 JIS, eucjp-win, sjis-win 混合编码
* @return stringstring mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )
**/


mb_convert_encoding函数为php内部多字节字符串编码转换函数,可以在有需要的使用场合,几乎支持所有编码。

直接获取 reg.php?gh=某某;

//工会登入参
$gonghui = $_GET[&#39;gh&#39;];

获得的$gonghui 为gb2312编码 输出到utf-8网页上显示乱码

改成

 //工会登入参数
 $gonghui = $_GET[&#39;gh&#39;];
 $gonghui = mb_convert_encoding($gonghui, "UTF-8", "gb2312");

 就显示正常了

对整个页面进行转换

该方法适用所有编码环境。这样把前128个字符以外(显示字符)的字符集都用   NCR(Numeric character reference,如“汉字”将转换成“汉字”这种形式)来表示,这样的编码在任意编码环境下页面都能正 常显示。

在php文件的头部加上下面三行代码:

代码如下:

mb_internal_encoding("gb2312");  // 这里的gb2312是你网站原来的编码    
mb_http_output("HTML-ENTITIES");    
ob_start(&#39;mb_output_handler&#39;);

使用mb_convert_encoding반환값: String

함수 유형: 인코딩 처리

ul>
예:


코드는 다음과 같습니다.

rrreee

urldecoding

🎜🎜URL 인코딩된 문자열 복원 🎜🎜🎜구문: ​​string urldecode(string str); 🎜🎜🎜반환값: 문자. 문자열🎜🎜🎜함수 유형: 인코딩 처리🎜🎜예: 🎜전달된 중국어를 처리하고 표시합니다. front🎜🎜🎜코드는 다음과 같습니다.🎜rrreee🎜🎜mb_convert_encoding 함수는 필요할 때 거의 모든 인코딩을 지원할 수 있습니다. reg.php?gh=XX에서 직접 얻은 코드입니다. >$gonghui는 gb2312를 인코딩하고 utf-8 웹 페이지에 잘못된 문자를 출력합니다. 그러면 정상적으로 표시됩니다. 이 방법은 모든 인코딩 환경에 적용 가능합니다. 이러한 방식으로 문자(표시 문자)를 제외한 처음 128개의 문자 집합은 NCR로 표시됩니다("한자"와 같은 숫자 문자 참조는 "한자"로 변환됩니다). 문자"). 이 인코딩은 어떤 인코딩 환경에서도 페이지를 정상적으로 표시할 수 있습니다🎜. 🎜php 파일의 헤드에 다음 세 줄의 코드를 추가합니다. 🎜🎜코드는 다음과 같습니다. 🎜rrreee🎜 mb_convert_encoding 사용 함수를 사용하려면 PHP의 mbstring(다중 바이트 문자열) 확장을 활성화해야 합니다. 🎜🎜그렇지 않은 경우 PHP의 mbstring 확장을 활성화하려면 php가 Windows에서 확장을 지원하도록 다음 설정을 지정해야 합니다. 서버 환경 🎜php.ini 파일을 편집하고, 확장명=php_mbstring.dll 앞의 ";"를 제거한 후 웹 서버를 다시 시작하세요. 🎜🎜2. Linux 서버 환경🎜컴파일 및 구성 시 --enable-mbstring=cn 컴파일 매개변수를 추가한 후 PHP를 컴파일하고 설치합니다. 🎜🎜🎜관련 학습 권장 사항: 🎜초보부터 마스터까지 PHP 프로그래밍🎜🎜🎜

위 내용은 PHP URL 주소 표시줄에 중국어 왜곡 문자가 전송되면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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