ホームページ > バックエンド開発 > PHPチュートリアル > PHP 中国語の文字化けコード、Winodws および Linux でのさまざまな解決策

PHP 中国語の文字化けコード、Winodws および Linux でのさまざまな解決策

WBOY
リリース: 2016-06-13 12:21:52
オリジナル
865 人が閲覧しました

PHP は中国語で文字化けします。Winodws と Linux で異なる方法で処理する方法についての質問があります。

引用
PHP を学ぶために wamp を使用しました。システムは Windows8 で、WEB ページは
エンコード、
なのですが、インターネットで検索すると中国語のディレクトリやファイル名を処理すると文字化けしてしまうそうです。
$dir=iconv(' UTF-8','GB2312',$dir); ディレクトリを中国語にデコードしてから操作し、
$dir=iconv('GB2312',' UTF-8',$dir); 逆エンコードして表示します。
この方法は確かに実現可能です。
購入したWEB HOSTINGサーバーにページをアップロードすると文字化けが発生します。
デコードしないと文字化けは発生しません。WEB HOSTINGはLINUX環境ではCPANELです。
本当にできます。なぜそのような違いがあるのか​​わかりません。
私は PHP を初めて使用します。この問題の理由を説明してくれる人はいますか?
それともローカルマシン上のサイトが正しく構成されていないのでしょうか?

-----ソリューションのアイデア----------------------
オペレーティング システムの文字セット
Winodws GBK
Linux UTF-8

Web ページの文字セットがオペレーティング システムの文字セットと同じ場合、ファイル名をトランスコードする必要はありません

------解決策----------------------
はい、普遍的なものなので、環境に応じて対応する
問題をユーザーに任せることはできない

たとえば、中国語のファイル名の問題がある場合、単純に $dir=iconv('UTF- 8','GB2312', $dir);
これを行うことができます:
設定ファイルに書き込みます
define('APP_CHARSET', 'UTF-8');
define('OS_CHARSET ', substr(PHP_OS, 0 , 3) == 'WIN' ? 'GBK' : 'UTF-8');

このように $dir=iconv('UTF-8','GB2312', $dir);
$dir=iconv('APP_CHARSET, OS_CHARSET, $dir);
これは一般化されています
さらに進むこともできます
function lang(&$str) {
return $str = iconv('APP_CHARSET, OS_CHARSET, $str);
}
プログラムでは、
lang($dir);
$path = lang($dir);
で次のことができます。完了します
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート