PHP_PHP チュートリアルでの中国語の文字化けのインターセプトの解決策
ASCii コードが 0xa0 より大きい場合、それは半分の漢字です。substr()、mb_substr()、ord() を理解してください。 現在一般的に使用されているエンコード形式は、UTF8、GBK、GBK2312、および BIG5 です。 GBK は GBK2312 のアップグレードです。現在、私が開発中に遭遇するのは基本的に UTF8 であり、フォーラム BBS では GBK が一般的に使用されています。今日は自分で UTF8 を書きましたが、テストでは問題なく動作しました。結局のところ、インターネットからコピーしたものを使用することもできますが、時間があれば自分で書いて、得たものだけを自分のものにするのが最善です。 。
一番簡単なのは使うことです
例1
コードは次のとおりです | コードをコピー |
echo substr("Hello world!",6); 世界! 例 2 |
英語では問題ありませんが、中国語では問題があります。以下では mb_substr 関数を使用して対処します。
/**
*——————————————————————————————————————–
*PHP には、使用できる mbstring 拡張ライブラリがあります (友人が PHP の面接時にこの質問をされました)。 *
ほとんどのサーバーは php_mbstring.dll を開かないので、開く必要があります
* php.ini 内の php_mbstring.dll を開く権限がない場合は、ISP に問い合わせる必要があります。
*mb_string の方が効率的であるため、最初に mb_string が使用できるかどうかを確認します:
*——————————————————————————————————————–
*/
コードは次のとおりです | コードをコピー |
if(function_exists(‘mb_string’)) |
まず独自の関数を定義します
コードは次のとおりです | コードをコピー |
/**
|
この方法を使用する場合、
タグのペアの文字セットは GBK、GB2312 などの中国語エンコーディングにのみ設定できることに注意してください。以下は私がよく使う中国語と英語の文字インターセプト機能です
中国語の文字列インターセプト関数のカスタマイズは、基本的に mb_substr をモデルにした関数を作成し、それを直接呼び出すことです。以下にあるコードは実際には非常に簡単です。
コードをコピー | |
関数 substr_cn($string_input,$start,$length) { /* 関数: * このアルゴリズムは中国語の文字列を傍受するために使用されます * この関数は 1 つの完全な文字の単位でインターセプトします。つまり、1 つの英語文字と 1 つの中国語文字は両方とも 1 単位の長さを表します * パラメータ: * パラメータ $string はインターセプトされる文字列です。 * パラメータ $start はインターセプトの開始位置です。 * パラメータ $length はインターセプトする文字数です (漢字または英語 1 文字を 1 文字として数えます) * 戻り値: * インターセプトされた結果文字列を返します * */ $str_input=$string_input $len=$長さ $return_str="" //空の文字列を定義します for ($i=0;$i<2*$len+2;$i++) $return_str=$return_str." "; $start_index=0; //開始バイトオフセットを計算します ($i=0;$i<$start;$i++) { if(ord($ str_input {$ start_index}&gt; = 161))) $start_index+=2; } その他 $start_index+=1; } $chr_index=$start_index //インターセプト ($i=0;$i<$len;$i++) の場合 { $asc=ord($str_input{$chr_index}); if ($asc>=161) $return_str{$i}=chr($asc); $return_str{$i+1}=chr(ord($str_input{$chr_index+1})); $len+=1 //終了条件に 1 を追加します ; $i++; $chr_index+=2; 続く; } それ以外 $return_str{$i}=chr($asc); $chr_index+=1; } } トリムを返す($return_str) }//substr_cn の終わり ?> |

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、
