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

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

Posted at March 1,2023 11:55 PM
Tag:[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.原因

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

  • 半角スペース: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)

関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)