Solution to the garbled Chinese characters transmitted in the php URL address bar: 1. urlencode method, the code is [string urlencode(string str)]; 2. urldecode method, the code is [string urldecode(string str].
Solution to the Chinese garbled characters passed in the php address bar:
php address bar passed Chinese $_GET and then garbled characters , Detailed explanation of the usage of urlencode and urldecode
url encoding
string urlencode(string str);
<?php $ChineseName="我的名字,是中文的哦"; $EncodeStr=urlencode($ChineseName); echo "<a href=/cgi/personal.cgi?name=$EncodeStr>我的名字</a>"; ?>
url decoding
The code is as follows:
<?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 mixed from_encoding 混合指定原来字串的编码,如:同时指定 JIS, eucjp-win, sjis-win 混合编码 * @return stringstring mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] ) **/
mb_convert_encoding
The function is PHP's internal multi-byte string encoding conversion function. It can support almost all encodings when needed.
Get reg.php directly? gh=XX;
//工会登入参 $gonghui = $_GET['gh'];
obtained
$gonghui is gb2312 encoded and output to the utf-8 web page to display garbled characters changed to
//工会登入参数 $gonghui = $_GET['gh']; $gonghui = mb_convert_encoding($gonghui, "UTF-8", "gb2312");
The display is normal
Convert the entire page
This method is applicable to all encoding environments. In this way, all character sets other than the first 128 characters (display characters) use NCR (Numeric character reference, such as "Chinese characters" will be converted into the form of "Chinese characters"), and this encoding can display the page normally in any encoding environment.
Add the following three lines of code to the head of the php file:
The code is as follows:
mb_internal_encoding("gb2312"); // 这里的gb2312是你网站原来的编码 mb_http_output("HTML-ENTITIES"); ob_start('mb_output_handler');
Using the
mb_convert_encoding function requires enabling PHP’s mbstring (multi-byte string) extension. If you do not enable php’s mbstring extension, you need to make the following settings to allow PHP to support the extension.
1. Windows server environment
Edit the php.ini file, remove the ; in front of extension=php_mbstring.dll, and restart the web server.
2. Linux server environment
PHP programming from entry to proficiency
The above is the detailed content of What should I do if Chinese garbled characters are transmitted in the php URL address bar?. For more information, please follow other related articles on the PHP Chinese website!