Home > Backend Development > PHP Problem > Summary of solutions to php url Chinese garbled characters

Summary of solutions to php url Chinese garbled characters

藏色散人
Release: 2023-03-02 06:42:01
Original
2883 people have browsed it

Solution to Chinese garbled url in php: 1. Use the "urlencode" function to solve the url encoding problem. The syntax is "string urlencode(string str);"; 2. Restore the URL encoding string through the "urldecode" function. .

Summary of solutions to php url Chinese garbled characters

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:

The code is as follows:

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

url decoding

Restore URL encoded string.

Syntax: string urldecode(string str);

Return value: String

Function type: Encoding processing

For example:

Process and display the previously passed Chinese text

The code is as follows:

<?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

/**
* 多字节字符串编码转换函数
*
* @param string str 需要进行编码转换的字符串
* @param string to_encoding 指定转换为某种编码,如:gb2312、gbk、utf-8等
* @param mixed from_encoding 混合指定原来字串的编码,如:同时指定 JIS, eucjp-win, sjis-win 混合编码
* @return string
string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )
**/
Copy after login

mb_convert_encoding

function is php internal multi-byte string encoding conversion Functions can be used wherever necessary and support almost all encodings.

PHP >= Supported by versions 4.0.6 and 5.

Get reg.php?gh=XX directly;

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

The $gonghui obtained is gb2312 encoded and output to the utf-8 webpage to display garbled characters

Changed to

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

The display will be normal

Convert the entire page

This method is applicable to 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:

The code is as follows:

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 for other netizens:

//方法一 urldecode
$url = &#39;aaa.php?region=&#39;.urldecode("四川省");
<a href="<?php echo $url;?>">aaa </a>
//方法二base64_encode
<?
$test="四川省";
$test1=base64_encode($test);
echo &#39;<a href="www.jb51.net?region=$test1">aaa </a>&#39;;
?>
Copy after login

Use base64_decode to unlock another page

base64_decode($region);
//方法三让服务器支持中文
[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 ~]#
Copy after login

For more related knowledge, please visit PHP Chinese website!

The above is the detailed content of Summary of solutions to php url Chinese garbled characters. For more information, please follow other related articles on 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