LoginSignup
2
1

More than 3 years have passed since last update.

VB.NetでUTF8・BOMなしのファイルを作成

Last updated at Posted at 2019-08-01

業務用のプログラムで文字化けが発生しましたので、色々テストしてみました。

UTF8を指定して出力ファイルを作成したのに、SJISを指定してファイル内容をプログラムで抽出しても文字化けが発生しないことは悩みました。

ファイル作成のコードは以下の通りです。

...(略)...
sw = New StreamWriter(tbOutput.Text, False, Encoding.GetEncoding("utf-8"))
...(略)...

sakuraエディターで出力ファイルを開いたら、「UTF8」ではなく、「UTF8 BOM付き」であることを気付きました。
image.png

コードを以下のように変更したらUTF8かつBOM無しのファイルを作成できました。

...(略)...
sw = New StreamWriter(tbOutput.Text, False, New UTF8Encoding(False))
...(略)...

変更後の出力ファイルを再度sakuraエディターで開いたら予想通り「UTF8」と表示されました。
image.png

BOM無しのファイルをSJISで開いたら、予想通り文字化けは発生しました!
テスト完了です!!!

※追記
テキストエディターで開いたら、BOM付きとBOM無しの内容は同じように見えますが、バイトで確認するとBOM付きのほうは3バイト多いことが分かります。
image.png

image.png

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1