ただし、PHP には付属していますこの関数では、strlen と mb_strlen はどちらも、文字列が占めるバイト数を計算することで長さを計算します。エンコード条件が異なると、中国語が占めるバイト数も異なります。 GBK/GB2312 では中国語の文字は 2 バイトを占めますが、UTF-8 では中国語の文字は 3 バイトを占めます。
string これは文字数であり、文字列が占めるバイト数ではありません。たとえば、UTF-8 での次の PHP コードのようになります。
それで、便利なものがありますまた、漢字を含む文字列の長さを取得する実用的な方法はありますか?通常のルールを使用して中国語の文字数を計算し、GBK/GB2312 エンコードで 2 で割って、UTF-8 エンコードで 3 で割って、最後に中国語以外の文字列の長さを加算することもできますが、これは面倒すぎます。WordPressには、次のようなより美しいコードがあります。
正規表現を使用するこの数式は文字列を単一の文字に分割し、count を直接使用して一致する文字の数を計算することで、必要な結果が得られます。 |