トップページへ

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

小粋空間 » office » Excel » Excel上の半角スペースが"?"に文字化けするときの対処

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.原因

ウェブページ上は同じ半角スペースに見えますが、下の行のスペースは「ノンブレークスペース」というもので、文字コードは次のように異なります。

で、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)

« 前の記事へ

次の記事へ »

トップページへ