ホームページ バックエンド開発 PHPの問題 php URL中国語文字化けの解決策まとめ

php URL中国語文字化けの解決策まとめ

Jul 07, 2020 am 09:40 AM

php での中国語の文字化け URL の解決策: 1. URL エンコードの問題を解決するには、「urlencode」関数を使用します。構文は「string urlencode(string str);」です。 2. URL エンコード文字列を復元します。 「urldecode」関数を介して。

php URL中国語文字化けの解決策まとめ

PHP アドレスバーの中国語の $_GET が文字化けする、urlencode と urldecode の使用方法を詳しく説明します

url エンコード

構文: string urlencode(string str);

戻り値: string

関数の種類: エンコード処理

例:

コードは次のとおりです:

<?php
$ChineseName="我的名字,是中文的哦";
$EncodeStr=urlencode($ChineseName);
echo "<a href=/cgi/personal.cgi?name=$EncodeStr>我的名字</a>";
?>
ログイン後にコピー

URL デコード

URL エンコードされた文字列を復元します。

構文: string urldecode(string str);

戻り値: String

関数の種類: エンコード処理

例:

先ほど渡された中国語を加工して表示します

コードは以下の通りです:

<?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 string
string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )
**/
ログイン後にコピー

mb_convert_encoding

関数は PHP の内部マルチバイト文字列エンコード変換関数は必要なときにいつでも使用でき、ほぼすべてのエンコードをサポートします。

PHP >= バージョン 4.0.6 および 5 でサポートされています。

reg.php?gh=XX を直接取得;

 //工会登入参
$gonghui = $_GET[&#39;gh&#39;];
ログイン後にコピー

取得した $gonghui は gb2312 でエンコードされ、文字化けを表示するために utf-8 Web ページに出力されます

次のように変更されました。

 //工会登入参数
 $gonghui = $_GET[&#39;gh&#39;];
 $gonghui = mb_convert_encoding($gonghui, "UTF-8", "gb2312");
ログイン後にコピー

表示は通常になります

ページ全体を変換します

この方法はすべてのコーディング環境に適用できます。このように、最初の 128 文字 (表示文字) 以外のすべての文字セットは NCR で表現されます (「漢字」などの数字参照は「漢字」に変換されます)。このエンコーディングはページ上で使用できます。どのエンコード環境でも通常の表示になります。

次の 3 行のコードを php ファイルの先頭に追加します。

コードは次のとおりです。

mb_internal_encoding("gb2312");  // 这里的gb2312是你网站原来的编码    
mb_http_output("HTML-ENTITIES");    
ob_start(&#39;mb_output_handler&#39;);
ログイン後にコピー

mb_convert_encoding 関数を使用するには、PHP の mbstring (multi -バイト文字列) 拡張子 .

PHP の mbstring 拡張機能が有効になっていない場合は、PHP が拡張機能をサポートできるように次の設定を行う必要があります。

1. Windows サーバー環境

php.ini ファイルを編集し、extension=php_mbstring.dll の前の ; を削除し、Web サーバーを再起動します。

2. Linux サーバー環境

設定のコンパイル時に --enable-mbstring=cn コンパイル パラメーターを追加し、PHP をコンパイルしてインストールします。

他のネットユーザー向けの 3 番目の参考方法:

//方法一 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;;
?>
ログイン後にコピー

base64_decode を使用して別のページのロックを解除する

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 ~]#
ログイン後にコピー

さらに関連する知識については、PHP 中国語 Web サイトを参照してください。 !

以上がphp URL中国語文字化けの解決策まとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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