Home  >  Article  >  Backend Development  >  What should I do if Chinese garbled characters are transmitted in the php URL address bar?

What should I do if Chinese garbled characters are transmitted in the php URL address bar?

coldplay.xixi
coldplay.xixiOriginal
2020-07-11 09:20:372556browse

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].

What should I do if Chinese garbled characters are transmitted in the php URL address bar?

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

  • ## 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>";
?>


url decoding

    ##Restore URL encoded string.
  • Syntax:
  • string urldecode(string str);

  • Return value: String
  • Function Category: Encoding processing
  • For example:
Process and display the Chinese passed in front



The code is as follows:

<?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
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[&#39;gh&#39;];

obtained

$gonghui

is gb2312 encoded and output to the utf-8 web page to display garbled characters changed to

 //工会登入参数
 $gonghui = $_GET[&#39;gh&#39;];
 $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(&#39;mb_output_handler&#39;);

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

Add the --enable-mbstring=cn compilation parameter when compiling the configuration, and then compile and install PHP.


Related learning recommendations:
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!

Statement:
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