*

PHP substr エスケープ処理で文字化け

公開日: : PHP, 開発

PHP substr 文字化け

mb_substrで文字コードを合わせて切り取ればOKって記事は沢山あるので割愛。
それでも一部記号が文字化けするのでなんでだろうと頭を悩ませてしまったので。。。記録
php5.3系

切取り方

$string = mb_substr($string, 0, $length, 'UTF-8');

これで解決するのなら頭を悩ませる必要は無かったのですが、
ダブルクオーテーション等の特殊文字のエスケープ処理をしている場合

“テスト文字列”

"テスト文字列"

の様な文字列に変換されています。
切取りの場所が悪いと表示の際に

"テスト文字列&q

の様な表示になり文字化けをしているように見えてしまいます。。。

$string = htmlspecialchars_decode($string, ENT_QUOTES);
$string = mb_substr($string, 0, $length, 'UTF-8');
$string = htmlentities($string, ENT_QUOTES, mb_internal_encoding());

一旦エスケープした文字列を戻してから切取り、再度エスケープ処理をする事で問題は解消。

なんてない事でしたが、文字コードを疑ったり見当違いな所を一生懸命調べてました(;´∀`)

関連記事

jQuery Google画像検索風プラグイン

Google画像検索風プラグイン rc_gallery_open こういったプラグインは数多の開

記事を読む

Macで ローカルサーバー構築 Apache起動編

Macで ローカルサーバー環境を構築するまで Apache起動編 ネットでの情報は必要最低限しか載

記事を読む

Apache 500 Internal Server Error

久しぶりに自宅のローカルサーバーを動かしたら「Server error!」が出てゑっ!? 解決方法

記事を読む

PHP MySQL 重複行を抽出 ロジックで高速化

PHP MySQL 重複行を抽出 ロジックで高速化 ロジックで高速化は釣りになっているかもしれませ

記事を読む

jQuery Googleカレンダー風スケジュール表 タイムテーブル

jQueryでスケジュール表もしくはタイムテーブルっぽいもの 仕事でスケジュール管理のシステム開発

記事を読む

jQuery removeClass 特定のクラスを全て削除

特定のクラスを全て削除 フォームを作成した時に、入力項目に不備があった場合は目立つ様にinput属

記事を読む

PHPでIE11ユーザーエージェント判定

IE11のユーザーエージェント判定 自作のユーザーエージェント判定クラスでIEの判定が出来てなかっ

記事を読む

Macで ローカルサーバー構築 ローカルネットワーク参加編

Macで ローカルサーバー環境を構築するまで Apache設定編 ネットでの情報は必要最低限しか載

記事を読む

jQuery draggable,resizable 要素のサイズがずれる

uiプロパティ以外で要素のサイズ取得を試みる draggableとresizableを使用し要素の

記事を読む

PHPで指定日の祝日を取得する方法 GoogleAPI利用

google APIを利用して指定日が祝日かどうか取得する 技術的な内容を書く場合は載せてるコード

記事を読む

jQuery 水平スクロール&cssでカスタム可能なスクロールバーなプラグイン

水平スクロール&cssでカスタム可能なスクロールバーなプラグイン j

C言語 バッファオーバーランまで 関数の引数ポインタ

関数引数としてのポインタ 今回は関数引数としてのポインタに関して。

C言語 バッファオーバーランまで ポインタ考察編

趣旨 ただC言語を勉強してもモチベーションがあがり辛いので、 取り

Google Cloud Messaging プロジェクトナンバー API Key取得編 2014/07最新版

Google Cloud Messaging プロジェクトナンバー A

jQuery removeClass 特定のクラスを全て削除

特定のクラスを全て削除 フォームを作成した時に、入力項目に不備があっ

→もっと見る

PAGE TOP ↑