ホームページ >バックエンド開発 >PHPチュートリアル >PHP が自動的に文字セットを識別し、transcoding_PHP チュートリアルを完了するための詳細な説明
というのは、私が使用している文字エンコードは一般的にUTF-8エンコードなのですが、相手のブログがgb2312エンコードを使っている場合、(相手がエンコードを変換してPOSTしない限り)POSTが文字化けしてしまうからです。相手が UTF-8 エンコードを使用する必要があるかどうかを保証できない場合は、自分でエンコードのチェックと変換を行う必要があります。
この作業を完了するための関数を作成しました。gb2312/gbk は中国語では 2 バイトですが、utf-8 の中国語文字も同様に 3 バイトであるため、原理は非常に簡単です。値の範囲。エンコードの状況に関係なく、英語は 128 未満であり、占有するのは 1 バイトのみです (全角を除く)。
ファイル形式でのエンコードチェックの場合は、utf-8のBOM情報を直接確認することもできます。この点については、TPツールボックスのエンコード変換機能を参照してください。 AppCodingSwitch クラスのコメント。
さっそく、この関数を使って文字列をチェックし、トランスコードしてみましょう。ファイル検査とトランスコーディング
$ Char = $ String {++ $ i};
If (or Char ($ Char) & 128) == 128) {
// 2番目のバイトの判断は、
$ encoding = "gb2312";
If (strtoupper($encoding) == strtoupper($outEncoding))
Return $string;
else
returniconv($encoding, $outEncoding, $string);
}
http://www.bkjia.com/PHPjc/328089.html
www.bkjia.com
true
技術記事
というのも、私が使用している文字エンコードは一般的にUTF-8エンコードなのですが、相手のブログがgb2312エンコードを使っている場合、(相手がエンコードを変換してPOSTしない限り)POSTが文字化けしてしまいます。違います...