解説
substr関数はシングルバイトの文字列を扱う関数なので、マルチバイトの文字列を渡すと意図しない結果となってしまいます。シフトJISコードの全角文字の1文字は、内部的には2バイトとして扱われているので、開始位置の2は「い」、そこから長さ4の文字列は、全角2文字分の「いう」になります。
1文字のバイト数が異なるUTF-8コードなどの文字列を渡した場合は、さらに異なる結果となってしまいます。そこで、PHPではマルチバイト用のmb_substr関数が用意されています。
では!
ハウツー
掲載日
substr関数はシングルバイトの文字列を扱う関数なので、マルチバイトの文字列を渡すと意図しない結果となってしまいます。シフトJISコードの全角文字の1文字は、内部的には2バイトとして扱われているので、開始位置の2は「い」、そこから長さ4の文字列は、全角2文字分の「いう」になります。
1文字のバイト数が異なるUTF-8コードなどの文字列を渡した場合は、さらに異なる結果となってしまいます。そこで、PHPではマルチバイト用のmb_substr関数が用意されています。
では!
「シングルマルチモニター」でプログラマーやデザイナーも作業効率倍増!5Kウルトラワイドモニターの活用術
サイバーセキュリティ最前線 第12回 TP-Link製ルーターを米国が禁止の可能性、シャープ製ルーター(ドコモ、KDDI、ソフトバンク)に脆弱性
HHKBキーボード高級化計画 第4回 ラバーカップ交換でHHKBの劣化に挑む
それもまたUIだね。インタフェース散歩! 第13回 誤りを訂正する
人気広告ブロッカー「uBlock Origin」、Chromeでサポート終了の可能性
開発/エンジニア システムやソフトウェアの開発に携わるエンジニアに向けた最新情報など仕事に役立つ話題などを提供していきます。