中国語のインターセプトと文字化けの問題は、通常、中国語の文字が混在することが原因で発生します。英語をインターセプトする場合は問題ありませんが、中国語は文字列のエンコーディングが UTF-8 であるため、中国語の文字が 1 つ必要になります。最大 3 バイト、文字列エンコードは GB2312 で、1 つの漢字が 2 バイトを占めます。まずは例を見てみましょう。
文字列エンコードは GB2312 で、1 つの中国語文字は 2 バイトを占めます:
コードは次のとおりです | コードをコピー |
public static function chinesesubstr($str, $start, $len) { // $str は文字列を指します、$start は文字列の開始位置を指します、$len は文字列の長さを指します |
コードをコピー | |||||
public static function chinesesubstr($str, $start, $len) { // $str は文字列を指します、$start は文字列の開始位置を指します、$len は文字列の長さを指します
$strlen = $start + $len; // 文字列の全長、つまり文字列の開始位置から文字列の全長までを格納するには $strlen を使用します この問題は上記で解決されましたが、比較的厄介なエンコーディングの問題に注意する必要があります。これは、どのようなエンコーディングが使用されても機能する解決策です。
|