PHP substr エスケープ処理で文字化け
PHP substr 文字化け
mb_substrで文字コードを合わせて切り取ればOKって記事は沢山あるので割愛。
それでも一部記号が文字化けするのでなんでだろうと頭を悩ませてしまったので。。。記録
php5.3系
切取り方
$string = mb_substr($string, 0, $length, 'UTF-8');
これで解決するのなら頭を悩ませる必要は無かったのですが、
ダブルクオーテーション等の特殊文字のエスケープ処理をしている場合
は
の様な文字列に変換されています。
切取りの場所が悪いと表示の際に
の様な表示になり文字化けをしているように見えてしまいます。。。
$string = htmlspecialchars_decode($string, ENT_QUOTES); $string = mb_substr($string, 0, $length, 'UTF-8'); $string = htmlentities($string, ENT_QUOTES, mb_internal_encoding());
一旦エスケープした文字列を戻してから切取り、再度エスケープ処理をする事で問題は解消。
なんてない事でしたが、文字コードを疑ったり見当違いな所を一生懸命調べてました(;´∀`)
関連記事
-
jQuery 要素の相対位置
jQueryを使って要素の相対位置を調べる Google先生に「jquery offsetLeft
-
jQuery Google画像検索風プラグイン
Google画像検索風プラグイン rc_gallery_open こういったプラグインは数多の開
-
PHPでIE11ユーザーエージェント判定
IE11のユーザーエージェント判定 自作のユーザーエージェント判定クラスでIEの判定が出来てなかっ
-
Apache 500 Internal Server Error
久しぶりに自宅のローカルサーバーを動かしたら「Server error!」が出てゑっ!? 解決方法
-
C言語 バッファオーバーランまで ポインタ考察編
趣旨 ただC言語を勉強してもモチベーションがあがり辛いので、 取り合えずバッファオーバーランを目
-
Androidで課金アプリ作製 サンプルコード(BILLING V3) 起動編
Androidで課金アプリ作製 サンプルコード起動編 課金アプリの制作の機会が来てしまいました。
-
Macで ローカルサーバー構築 ローカルネットワーク参加編
Macで ローカルサーバー環境を構築するまで Apache設定編 ネットでの情報は必要最低限しか載
-
Macで ローカルサーバー構築 Apache設定編
Macで ローカルサーバー環境を構築するまで Apache設定編 ネットでの情報は必要最低限しか載
-
jQuery 水平スクロール&cssでカスタム可能なスクロールバーなプラグイン
水平スクロール&cssでカスタム可能なスクロールバーなプラグイン jQueryを使ったプラグインは
-
Macで ローカルサーバー構築 Postfix基本編
Macで ローカルサーバー環境を構築するまで Apache起動編 ネットでの情報は必要最低限しか載