「PHPとMYSQLを学ぶ - 文字エンコード(前編)」では、UnicodeとUTF-8の変換関係を紹介し、UTF-8のエンコード規則をまとめ、このエンコード規則に基づいてUTF-8エンコード解析プログラムを作成します。と書かれています。以下は PHP の実装です:
/*
プログラム関数 $str は、中国語と英語が混在した UTF-8 エンコード文字列です。
この文字列は、UTF-8 エンコード規則に従って正しくデコードされ、表示されます。 。
*/
$str = '今日はとても幸せなので、コーラのチキンウィングを食べに KFC に行くことにしました!!!';
/*
$str はインターセプトされます。文字列
$len はインターセプトされる文字数です。
*/
function utf8sub($str,$len) {
if($len return '';
}
$offset = 0; // 上位バイトをインターセプトするときのオフセット
$chars = 0; // インターセプトされた文字数
$res = ''; // インターセプトした結果の文字列を保存します
while($chars // 文字列の最初のバイトを最初に取得します
// 10 進数に変換します
> // 次にバイナリに変換します
$high = ord(substr($str,$offset,1));
// echo '$high='. $high .'
' ;
if($high == null ){ // 上位ビットが null の場合は最後までフェッチされたことを証明し、直接ブレークします
break;
}
if(($high> >2) === 0x3F){ // 上位ビットを右に 2 ビットシフトし、バイナリ 111111 と比較します。同じ場合は 6 バイトを取得します。
// インターセプト2 バイト
$count = 6;
}else if(($high>>3) === 0x1F){ // 上位ビットを右に 2 ビットシフトし、バイナリ 11111 と比較します。それらは同じです、5 バイトを取ります
// 3 バイトをインターセプト$count = 5;
}else if(($high>>4) === 0xF){ // 上位ビットをシフトします2 ビット右に移動し、バイナリ 1111 と比較します。同じであれば、4 バイトを取得します
//4 バイトをインターセプトします
$count = 4;
}else if(($ high>>5) === 0x7){ // 上位ビットを 2 ビット右にシフトし、バイナリ 111 を比較し、同じ場合は 3 バイトを取る
// 5 バイトをインターセプト
$count = 3;
}else if(($high>>6) === 0x3) { // 上位ビットを右に 2 ビットシフトし、バイナリ 11 と比較し、同じであれば、 take 2 bytes
// 6 バイトをインターセプト
$count = 2;
}else if(($high >>7) === 0x0){ // 上位ビットを右に 2 シフトしますビット、バイナリ 0 と比較し、同じ場合は 1 バイトを取得します
$count = 1;
}
// echo ' $count='.$count.'
' ;
$res .= substr($str,$offset,$count); // 文字を取り出して $res と連結 string
$chars = 1; // 文字数インターセプトは 1
$offset = $count; // インターセプトされた上位オフセットは $count バイトだけ後方に移動します
}
return $res;
}
echo utf8sub($ str,100);

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

Dreamweaver Mac版
ビジュアル Web 開発ツール
