Home  >  Article  >  Backend Development  >  thinkphp About the problem of garbled Chinese parameters on iis_PHP tutorial

thinkphp About the problem of garbled Chinese parameters on iis_PHP tutorial

WBOY
WBOYOriginal
2016-07-12 09:03:34857browse

thinkphp Regarding the problem of garbled Chinese parameters on iis

First method:
When using ?id="中文" to pass Chinese parameters, garbled characters appear. This is the result of secondary transcoding. In php, Chinese cannot be directly transmitted in the URL. For this I have always been dissatisfied and have no choice. Why don't we have a solution? I don't know if this problem also occurs in other languages.
As for the solutions mentioned on the Internet about adding header("content-type:text/html;charset=utf-8"); on the homepage, as well as setting the database page, etc. to utf8, it is completely invalid and always The Chinese passed through is garbled.
Although I always use unified utf8 encoding for PHP on the site, it is always garbled when passed through. Later, I tested several browsers and found that 360 can be passed through, but IE cannot. Later, I used $msg = iconv(' gbk','utf-8',$_GET["msg"]); After converting and testing several browsers, most of them still display garbled characters.
Finally, to summarize, for the past value of GET[], Chinese cannot be directly transmitted in the URL. If it must be transmitted, use the urlencode() method to process Chinese. I don’t know what to do with POST[], I haven’t done any experiments yet.
It seems that the only way to process Chinese is to use the urlencode() method. You need to encode it before passing it, and then solve it after passing it. Then use the following two functions: Encoding: ".urlencode('Chinese ').", decoding: ".urldecode('Chinese').", the Chinese in brackets are the characters passed.
As follows: Pass the page and encode it first: td.php?id=".urlencode('Chinese').", then accept the page and decode it: urldecode(id).".
Second method:
If the address generated by the gbk-encoded page is linked to the utf-8 page, and the Chinese of the gbk page is encoded in the gbk format and sent to the next page, then garbled characters will definitely appear after the utf-8 encoding is received.
The URL rewriting module of IIS, the rewritten Chinese encoding is also gbk. If your page is UTF-8 encoding, the rewriting parameters will be invalid. In situations like these, we need to use PHP’s built-in transcoding function to handle encoding issues:
Option 1:
$name = iconv("gbk","utf-8",$name);
Option 2:
mb_convert_encoding($name, "utf-8", "gbk");

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1079404.htmlTechArticlethinkphp The first method about the Chinese parameter garbled problem on iis: When using ?id=中文 to pass Chinese parameters, Garbled characters appear, which are the results of secondary transcoding, among which...
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