Excel上の半角スペースが"?"に文字化けするときの対処

March 1,2023 11:55 PM
Category:[Excel]
Tag:[Excel]
Permalink

Excel上の半角スペースが"?"に文字化けするときの対処方法を紹介します。

1.問題点

ウェブページのテキストをコピーしてExcelにはりつけ、それをさらにコピーしてテキストエディタに貼り付けたり、あるいはCSVとして保存すると、半角スペースが"?"に文字化けするケースがあります。

下記のテキスト「aaa bbb」のページをコピーします。

テキスト「aaa bbb」のページ

ページのHTMLは下記のようになっています。

aaa bbb<br />
aaa&nbsp;bbb

上の行は普通の半角スペース、下の行は"&nbsp;"になっています。

Excelに貼り付けます。

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)
半角スペースの文字コード(32)

NBSPの文字コード(160)
NBSPの文字コード(160)

3.対処

任意のセルに「=CHAR(160)」という数式を入力。

任意のセルに「=CHAR(160)」という数式を入力

そのセルを丸ごとコピー。

セルを丸ごとコピー

Ctrl+fで「置換」タブを開く。

「置換」タブ

「検索する文字列」にコピーした内容をペースト(半角スペースが入ったようにみえます)、「置換後の文字列」に普通の半角スペースを入力。

「置換」タブ

「すべて置換」をクリック。

すべて置換

これでNBSPが半角スペースに変換されます。

NBSPが半角スペースに変換

さきほどの文字コードチェックでも「32」に変換されていることが分かります。

半角スペースの文字コード(32)

Comments [0] | Trackbacks [0]

MovableTypeで削除したコンテンツデータや記事を復元できる「Trashプラグイン」

February 7,2023 12:00 AM
Category:[管理画面]
Tag:[MovableType, Plugin, Trash]
Permalink

MovableTypeで削除したコンテンツデータや記事を復活できる「Trashプラグイン」を作りました。

1.はじめに

MTのデフォルト状態でコンテンツデータや記事を「削除」ボタンで削除すると、データを復元することはできません。

「削除」ボタン

本プラグインを利用することで、誤って削除してしまったコンテンツデータや記事を復元することが可能になります。

2.主な機能

削除ボタンで削除したコンテンツデータや記事は「ゴミ箱」に移動します(削除したデータは一覧画面に表示されなくなります)。

「ゴミ箱」に移動したコンテンツデータや記事は、一覧画面のフィルタ「ゴミ箱」から確認できます。

一覧画面のフィルタ

ゴミ箱に移動したデータにはゴミ箱のアイコンが表示されます。

ゴミ箱に移動したデータ

ゴミ箱が参照できるのはシステム管理者です(今後機能追加で任意のロールで参照可能にする予定)。

誤って削除してしまったデータを復元するには「~を復元」を選択します。

復元

復元したデータは「未公開(原稿)」状態となります。

ゴミ箱のデータをデータベースから削除するには「完全に削除」を選択します。

完全に削除

ゴミ箱に移動した履歴も残ります。

完全に削除

3.Trashプラグインについて

Trashプラグインの詳細は下記のリンクからご覧ください。

Trashプラグイン
Trashプラグイン

Comments [0] | Trackbacks [0]

PHPでvar_dumpの情報をファイルに出力する方法

January 31,2023 11:55 PM
Category:[PHP]
Tag:[PHP]
Permalink

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(|)で結合します。

サンプルは、上書きモードを指定しています。

Comments [0] | Trackbacks [0]
 1  |  2  |  3  |  4  |  5  | All pages