PHP 关于UTF-8中文乱码解决办法
PHP 关于UTF-8中文乱码解决方法
1。用表单进行提交,post或是get方法都可以。
用这种方法进行”人”字提交时,如果你用的是get方法,你会发现。ie地址栏的url上是找不到”人”字的,看到的是”%4e%ba%ba”,原因在于,ie的表单进行提交时,被自动进行了。urlencode编码,而在搜索页里接收变量时,php自动的把他给decode了。所以,你得到的就是utf-8的”人”字。并不会出现任何问题,当然了,前提是你表单所在的页面是utf-8的编码。
?
2。文字链接进行提交,utf-8编码的页面上有一个文字链,形如xxxx,当你点击提交后,你会看到,在ie的地址栏里,你可以看到那个”人”字,在页面里你接收到后进行输出,发现他会变成”浜”这个字,问题出来了,utf-8的页面,提交后,输出页面也是utf-8的编码,可就是出错了。注意,这并不是你环境设置的问题,网上好多介绍说把php.ini里的default_charset这一样打开并改成utf-8可以解决,这是不准确的说法,继续我们的问题,这次不输出这个字,用urlencode进行编码并输出编码,看到结果变成”%4e%ba”了,少了高位。即然到这里时少了高位,那么,在这个页面里,是无法做任何处理了。ie的问题就在这里了。utf-8的编码是每个汉字占3位字节,而在你用文字链的方式进行提交时,如果你是直接写的汉字,其实,这个汉字确确实实在提交时是utf-8的编码,但,因为ie对html解析的问题,他把奇数的汉字,或称之为奇数的全角字符自为主张的截掉了高位,按两字节进行处理。这样也就出了我们现在的问题了。解决方法:把你提交的关键字,写成偶数个,就不会再出现这些问题了,如果真的只有奇数个,那么,在提交交,就对其进行urlencode编码,或是在关键字的前边或是后边加入一个全角的空格,这样,接收页面就可以得到完整的字符串了,再做处理截掉空格就行了。
?
3。ie地址栏里直接手动写入中文进行页面打开,这种方式多见于分页查询时,有网页基础知识的用户,为了省事,会在一个关键字查询中,直接修改url地址,进行另一个关键字的查询。这时,用户在地址栏里输入的汉字,是gb2312的,而不会因为你的页面是utf-8面自动转换,如果你有兴趣,可以试一下,urlencode看一下。这时,在你接收到关键字后,用iconv进行转换成utf-8就可以查询了。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー
