ホームページ バックエンド開発 PHPチュートリアル PHPで中国語の文字化けをインターセプトする問題の解決方法 substr_PHP チュートリアル

PHPで中国語の文字化けをインターセプトする問題の解決方法 substr_PHP チュートリアル

Jul 13, 2016 am 10:43 AM
php substr 中国語 文字化け いくつかの 関数 方法 存在する キャラクター 私たち インターセプト 供給 解決する 質問

PHP には、substr、mb_substr、mb_strcut 関数など、いくつかの文字インターセプト関数が用意されています。PHP 初心者の中には、中国語の文字をインターセプトするために substr を使用する人もいます。文字化けを解決します。

記事ページの説明では、substr関数を使用して220文字をインターセプトしていますが、最後の漢字が常に文字化けしており、インターセプトの長さが正しくありません。

Googleの魔法で方法を見つけてください。 substr(string,start,length) が文字化けしてしまうためかもしれません

解決策:

PHP 拡張ライブラリの mb_substr メソッドを使用します。

注意

1. Windows/system32 にファイル php_mbstring.dll があることを確認します。ない場合は、Php インストール ディレクトリ拡張子から Windows/system32 にコピーします。
2. Windows ディレクトリで php.ini を見つけて編集のために開き、mbstring.dll を検索して
を見つけます ;extension=php_mbstring.dll mb_substr 関数が有効になるように、先頭の「;」記号を削除します


メソッド定義:

string mb_substr ( string str, int start [, int length [, 文字列エンコーディング]] )

注: mb_substr()/mb_strcut を使用する場合、文字列のエンコーディングを設定するために最後にもう 1 つのパラメーターを追加する必要があります。

例:

コードは次のとおりですコードをコピー
echo mb_substr(‘元々文字化けしていた漢字が表示されます!’, 0, 7, ‘utf-8’);

別の例:

コードは次のとおりですコードをコピー
$description = mb_substr(strip_tags($post->post_content),0,220,’utf-8’);

mb_strcut関数

mb_strcut 関数は文字列の長さをインターセプトすることもできます。次の例で違いを見てみましょう。

コードは次のとおりです $str = 'こうすれば文字化けがなくなります^_^';


echo "mb_substr:" . mb_substr($str, 0, 7, 'utf-8'); //結果: 私の言葉はこうなります

echo "
";


echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8'); //結果: このようになります
?>



上記の例からわかるように、mb_substr は文字を単語ごとに分割し、mb_strcut は文字をバイトごとに分割しますが、どちらも文字の半分を生成しません。

substr()関数中国語版 通常のsubstr()関数は指定した長さの文字列の部分文字列を取得できますが、中国語に遭遇した場合、新しい文字列の末尾に文字化けが発生する場合があります。 以下の関数は文字列を取得します。 $lenを超える長さの場合は「...」で終わるように変換し、文字化けを解消します。
使用法: $new = getsubstring($old,20);

コードをコピー
コードは次のとおりです コードをコピー
関数 getsubstring($str,$len)
{
for($i = 0;$i {
if ($i >=0 AND $i {
If(ord(substr($str,$i,1)) > 0xa1)
$result_str.=substr($str,$i,2); それ以外は
$result_str.=substr($str,$i,1); }
If(ord(substr($str,$i,1)) > 0xa1)
$i++; }
if(strlen($str) $result_str を返す
それ以外は
$result_str."..." を返します。 }




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

www.bkjia.com

http://www.bkjia.com/PHPjc/633190.html技術記事 PHP には、substr、mb_substr、mb_strcut 関数など、いくつかの文字インターセプト関数が用意されています。PHP 初心者の中には、substr を使用して中国語の文字をインターセプトする人もいますが、中国語の文字が文字化けしてしまうことがわかります。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

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

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

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

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

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

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

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

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

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

See all articles