ホームページ  >  記事  >  バックエンド開発  >  PHP が自動的に文字セットを識別し、transcoding_PHP チュートリアルを完了するための詳細な説明

PHP が自動的に文字セットを識別し、transcoding_PHP チュートリアルを完了するための詳細な説明

WBOY
WBOYオリジナル
2016-07-21 15:00:04772ブラウズ

というのは、私が使用している文字エンコードは一般的にUTF-8エンコードなのですが、相手のブログがgb2312エンコードを使っている場合、(相手がエンコードを変換してPOSTしない限り)POSTが文字化けしてしまうからです。相手が UTF-8 エンコードを使用する必要があるかどうかを保証できない場合は、自分でエンコードのチェックと変換を行う必要があります。

この作業を完了するための関数を作成しました。gb2312/gbk は中国語では 2 バイトですが、utf-8 の中国語文字も同様に 3 バイトであるため、原理は非常に簡単です。値の範囲。エンコードの状況に関係なく、英語は 128 未満であり、占有するのは 1 バイトのみです (全角を除く)。

ファイル形式でのエンコードチェックの場合は、utf-8のBOM情報を直接確認することもできます。この点については、TPツールボックスのエンコード変換機能を参照してください。 AppCodingSwitch クラスのコメント。

さっそく、この関数を使って文字列をチェックし、トランスコードしてみましょう。ファイル検査とトランスコーディング

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

function safetyEncoding($string, $outEncoding = 'UTF-8') {
$encoding = "UTF-8";
for ( $ i = $ i< ((ord($ string {$ i})&224)== 224){
$ char)&128){
{$ encoding = "utf-8"; string{$i}) & 192) == 192) { Through

$ 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

tru​​e

http://www.bkjia.com/PHPjc/328089.html


技術記事

というのも、私が使用している文字エンコードは一般的にUTF-8エンコードなのですが、相手のブログがgb2312エンコードを使っている場合、(相手がエンコードを変換してPOSTしない限り)POSTが文字化けしてしまいます。違います...


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