*

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-logo_png

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

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

記事を読む

jquery-logo_png

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

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

記事を読む

PHP-icon

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

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

記事を読む

jquery-logo_png

jQuery 要素の相対位置

jQueryを使って要素の相対位置を調べる Google先生に「jquery offsetLeft

記事を読む

c2

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

趣旨 ただC言語を勉強してもモチベーションがあがり辛いので、 取り合えずバッファオーバーランを目

記事を読む

apache -h

Macで ローカルサーバー構築 Apache設定編

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

記事を読む

jquery-logo_png

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

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

記事を読む

PHP 5.4.17

Macで ローカルサーバー構築 PHP設定編

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

記事を読む

droid

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

Google Cloud Messaging プロジェクトナンバー APK取得編 コンソールの仕様

記事を読む

droid

Androidで課金アプリ作製 プロセス間通信予習編

Androidで課金アプリ作製 プロセス間通予習編 課金アプリを作成の際にaidlファイルを利用す

記事を読む

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

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

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

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

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

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

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

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

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

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

→もっと見る

PAGE TOP ↑