Excel上の半角スペースが"?"に文字化けするときの対処
小粋空間 » office » Excel » 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」に変換されていることが分かります。