Home > Backend Development > PHP Tutorial > Collection of solutions to Chinese garbled characters transmitted in the php url address bar

Collection of solutions to Chinese garbled characters transmitted in the php url address bar

高洛峰
Release: 2023-03-04 18:54:01
Original
1702 people have browsed it

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:

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

url decoding
Restore the URL encoded string.
Syntax: string urldecode(string str);
Return value: String
Function type: Encoding processing
For example:
Process and display the Chinese passed in front

<?php
$DecodeStr=urldecode($_GET[&#39;name&#39;]);//你可能不用解码都可以,因为浏览器会自动帮你解码
echo $DecodeStr;
?>
Copy after login

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
/* The *
* Multi-byte string encoding conversion function
*
* @param string str String that needs encoding conversion
* @param string to_encoding Specifies 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 specifying 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's internal multi-byte string encoding conversion function. It 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 obtained $gonghui is gb2312 encoded and output to the utf-8 webpage to display garbled characters

Changed to

// Union login parameters
$gonghui = $_GET['gh'];
$gonghui = mb_convert_encoding($gonghui, "UTF-8", "gb2312");

The display will be normal

Convert the entire page

This The method works in 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"). This encoding can be used on the page in any encoding environment. normal display.

Add the following three lines of code to the head of the php file:

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

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");
< ;a href="">aaa

//Method 2 base64_encode

$test ="Sichuan Province";
$test1=base64_encode($test);
echo 'aaa ';
?>

Use base64_decode to decode another page

base64_decode($region);

//Method 3 to make 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 ~]

#For more related articles on the collection of solutions to Chinese garbled characters transmitted in the php url address bar, please pay attention to the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template