Excel VBAファイル(.bas)の文字化けの対策
更新日:2025/01/22

どういうタイミングで文字化けするか?
ブラウザでのファイル読み込み時に文字化けしてしまいます
メモ帳でしたら自動判定で正常に表示されます
そもそも文字化けとは
文字化けは異なる文字コードでエンコーディングすることで発生します。Shift-JISで書かれたファイルをUTF-8として読み込むと、バイナリデータの解釈方法が異なるため、意図しない文字として表示されます。
エンコーディングとは
Shift-JIS
Shift-JISは文字コードの一種です。
文字コードとは?
文字コードとは:
- コンピュータが文字を扱うための規則
- 文字とバイナリデータの対応表
- 同じ文字でも異なる表現方法が存在
Shift-JISの特徴:
- 主に日本のWindowsで使用
- VBAなど古いシステムで採用
- 2バイトで日本語を表現
そのため、Shift-JISで書かれた.basファイルをUTF-8として読み込むと文字化けが発生します。
Blob
Blobは、バイナリデータを扱うためのJavaScriptのオブジェクトです。
.basファイル(Shift-JIS) → ArrayBuffer(バイナリ) → Text(UTF-8)の変換で、Shift-JISのバイナリデータをUTF-8として誤って解釈したことが原因です。
↓
処理タイミング:
- ファイル読み込み時:バイナリデータとして読み込む
- TextDecoder使用時:バイナリ→テキストにデコード
- 表示前:適切な文字コードでエンコード
この方法は一般的で、特にShift-JISなど日本語文字コードを扱う際によく使用されます。ブラウザの標準APIを使用しているため、信頼性が高いアプローチです
Blobの主な使用例
ファイル操作
// ダウンロード
const blob = new Blob(['テキストデータ'], { type: 'text/plain' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = 'file.txt';
a.click();
データ変換
// バイナリ→テキスト変換
const blob = new Blob([arrayBuffer], { type: 'text/plain' });
const text = await blob.text();
API通信
// ファイルアップロード
const formData = new FormData();
formData.append('file', blob, 'filename.txt');
await fetch('/upload', {
method: 'POST',
body: formData
});

-
検索
(例) debug search etc.. -
カテゴリー
新規記事
SEOサンプル記事
話題のキーワードから探す