Excel上の半角スペースが"?"に文字化けするときの対処
Excel上の半角スペースが"?"に文字化けするときの対処方法を紹介します。
1.問題点
ウェブページのテキストをコピーしてExcelにはりつけ、それをさらにコピーしてテキストエディタに貼り付けたり、あるいはCSVとして保存すると、半角スペースが"?"に文字化けするケースがあります。
下記のテキスト「aaa bbb」のページをコピーします。
ページのHTMLは下記のようになっています。
aaa bbb<br />
aaa bbb
上の行は普通の半角スペース、下の行は" "になっています。
Excelに貼り付けます。
通常のxlsx形式で一旦保存し、セルをさらにコピーしてテキストエディタに貼り付けると、下記のようになります。
aaa bbb
aaa?bbb
あるいはcsv形式で保存したあと、ファイルをテキストエディタで開くと、同様の事象になります。
2.原因
ウェブページ上は同じ半角スペースに見えますが、下の行のスペースは「ノンブレークスペース」というもので、文字コードは次のように異なります。
- 半角スペース:CODE=32(0x20)
- NBSP:CODE=160(0xA0)
で、NBSPはShift-JISで表現できないため、Excel上では"?"に文字化けしてしまう、という訳です。
文字コードを調べるには、該当シートのセルに下記を設定します。
=CODE(MID(セル,開始位置,文字数))
さきほどのExcelに設定すると、それぞれ「32」「160」となります。
半角スペースの文字コード(32)
NBSPの文字コード(160)
3.対処
任意のセルに「=CHAR(160)」という数式を入力。
そのセルを丸ごとコピー。
Ctrl+fで「置換」タブを開く。
「検索する文字列」にコピーした内容をペースト(半角スペースが入ったようにみえます)、「置換後の文字列」に普通の半角スペースを入力。
「すべて置換」をクリック。
これでNBSPが半角スペースに変換されます。
さきほどの文字コードチェックでも「32」に変換されていることが分かります。
MovableTypeで削除したコンテンツデータや記事を復元できる「Trashプラグイン」
MovableTypeで削除したコンテンツデータや記事を復活できる「Trashプラグイン」を作りました。
1.はじめに
MTのデフォルト状態でコンテンツデータや記事を「削除」ボタンで削除すると、データを復元することはできません。
本プラグインを利用することで、誤って削除してしまったコンテンツデータや記事を復元することが可能になります。
2.主な機能
削除ボタンで削除したコンテンツデータや記事は「ゴミ箱」に移動します(削除したデータは一覧画面に表示されなくなります)。
「ゴミ箱」に移動したコンテンツデータや記事は、一覧画面のフィルタ「ゴミ箱」から確認できます。
ゴミ箱に移動したデータにはゴミ箱のアイコンが表示されます。
ゴミ箱が参照できるのはシステム管理者です(今後機能追加で任意のロールで参照可能にする予定)。
誤って削除してしまったデータを復元するには「~を復元」を選択します。
復元したデータは「未公開(原稿)」状態となります。
ゴミ箱のデータをデータベースから削除するには「完全に削除」を選択します。
ゴミ箱に移動した履歴も残ります。
3.Trashプラグインについて
Trashプラグインの詳細は下記のリンクからご覧ください。
PHPでvar_dumpの情報をファイルに出力する方法
PHPでvar_dumpの情報をファイルに出力する方法を紹介します。
1.問題点
ブラウザからアクセスしたサイトで動作するPHPのログをファイルに出力したいのですが、方法がわかりません。
ということで、PHPでvar_dumpの情報をファイルに出力する方法を紹介します。
2.PHPでvar_dumpの情報をファイルに出力する
PHPでvar_dumpの情報をファイルに出力するには、下記の行を追加します。
ob_start();
var_dump($data);
$dump = ob_get_contents();
ob_end_clean();
file_put_contents( '/tmp/debug.log', $dump, FILE_APPEND );
3.解説
各関数について解説します。
ob_start()は、出力をバッファリングします。
var_dump()は、 変数に関する情報をダンプします。配列やハッシュなどの構造もダンプできます。
ob_get_contents()は、バッファリングした値を代入します。
ob_end_clean()は、バッファリングを終了します。
file_put_contents()は、文字列をファイルに書き込みます。第1パラメータは出力パス・ファイル、第2パラメータは出力する内容、第3パラメータはフラグで、下記の3種類があります。
- FILE_USE_INCLUDE_PATH:インクルードパスを使用
- FILE_APPEND:ファイルを追記モードで開く
- LOCK_EX:書き込み中にファイルをロック
複数のフラグを指定する場合、論理演算子OR(|)で結合します。
サンプルは、上書きモードを指定しています。