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());
一旦エスケープした文字列を戻してから切取り、再度エスケープ処理をする事で問題は解消。
なんてない事でしたが、文字コードを疑ったり見当違いな所を一生懸命調べてました(;´∀`)
関連記事
-
-
Macで ローカルサーバー構築 ローカルネットワーク参加編
Macで ローカルサーバー環境を構築するまで Apache設定編 ネットでの情報は必要最低限しか載
-
-
jQuery 要素の相対位置
jQueryを使って要素の相対位置を調べる Google先生に「jquery offsetLeft
-
-
Androidで課金アプリ作製 エラー編(-1008:Unknown error)
Androidで課金アプリ作製 エラー編 In-app Billing v3を使用したアプリ開発で
-
-
Apache 500 Internal Server Error
久しぶりに自宅のローカルサーバーを動かしたら「Server error!」が出てゑっ!? 解決方法
-
-
Macで ローカルサーバー構築 PHP設定編
Macで ローカルサーバー環境を構築するまで PHP設定編 ネットでの情報は必要最低限しか載ってな
-
-
Androidで課金アプリ作製 サンプルコード(BILLING V3) 起動編
Androidで課金アプリ作製 サンプルコード起動編 課金アプリの制作の機会が来てしまいました。
-
-
jQuery removeClass 特定のクラスを全て削除
特定のクラスを全て削除 フォームを作成した時に、入力項目に不備があった場合は目立つ様にinput属
-
-
jQuery Googleカレンダー風スケジュール表 タイムテーブル
jQueryでスケジュール表もしくはタイムテーブルっぽいもの 仕事でスケジュール管理のシステム開発
-
-
Androidで課金アプリ作製 定期購読サンプルコード編
Androidで課金アプリ作製 定期購読編 In-app Billing v3を使用したアプリ開発
-
-
PHPで指定日の祝日を取得する方法 GoogleAPI利用
google APIを利用して指定日が祝日かどうか取得する 技術的な内容を書く場合は載せてるコード