Home > Article > Backend Development > Collection of solutions to Chinese garbled characters transmitted in the php url address bar_PHP tutorial
The Chinese $_GET in the php address bar is garbled, and the usage of urlencode and urldecode is explained in detail
url encoding
Syntax: string urlencode(string str);
Return value: string
Function type: Encoding processing
For example:
About the problem of Chinese garbled characters obtained from the URL using the get method in PHP
Use $gonghui = iconv("gb2312","UTF-8",$gonghui); another Method code
/**
* Multi-byte string encoding conversion function
*
* @param string str The string that needs to be encoded and converted
* @param string to_encoding specifies the conversion to a certain encoding, such as: gb2312, gbk, utf-8, etc.
* @param mixed from_encoding mixedly specifies the encoding of the original string, such as: specify JIS, eucjp-win, sjis-win mixed encoding at the same time
* @return string
string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )
**/
mb_convert_encoding function is PHP internal multi-byte string encoding conversion function, which can support almost all encodings when needed. PHP >= 4.0.6, 5 versions supported.
Get reg.php?gh=XX directly;
// Union login parameters
$gonghui = $_GET['gh'];
The $gonghui obtained is gb2312 encoded and output to utf-8 webpage to display garbled characters
changed to
//Union login parameters
$gonghui = $_GET['gh'];
$gonghui = mb_convert_encoding($gonghui, "UTF-8", "gb2312");
It will display normally
Convert the entire page
This method is suitable for all coding environments. In this way, all character sets other than the first 128 characters (display characters) are represented by NCR (Numeric character reference, such as "Chinese characters" will be converted into "Chinese characters"). Such encoding can be used on the page in any encoding environment. Display normally.
Add the following three lines of code to the head of the php file:
Using the mb_convert_encoding function requires enabling PHP's mbstring (multi-byte string) extension.
If the mbstring extension of PHP is not enabled, 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
Add the --enable-mbstring=cn compilation parameter when compiling the configuration, and then compile and install PHP.
The third reference method from other netizens:
//Method 1 urldecode
$url = 'aaa.php?region='.urldecode("Sichuan Province");
aaa
//Method 2 base64_encode
$test="Sichuan Province";
$test1=base64_encode($test);
echo 'aaa ';
?>
Another page is decoded using base64_decode
base64_decode($region);
//Method 3 makes the server support Chinese
[root@dhcp ~]# locale
lang=zh_cn.utf-8
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.utf-8"
lc_all=
[root@dhcp ~]#