C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

エンコーディングそのままでテキストファイル変換

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■95063 / inTopicNo.1)  エンコーディングそのままでテキストファイル変換
  
□投稿者/ furu (52回)-(2020/06/19(Fri) 17:00:18)

分類:[C#] 

VS2019

テキストファイルをある規則で変換するのに
  System.IO.StreamReader
  System.IO.StreamWriter
を使用しました。

エンコーディングを変えずに変換後のファイルを作成するため
変換前のファイルを読み取った時のStreamReader.CurrentEncodingを
StreamWriterのコンストラクターで指定しました。

しかし
BOMなしUTF8ファイルなのに
BOMありUTF8ファイルが作成されてしまいました。

簡単に元と同じファイル形式は作成できないものでしょうか?
引用返信 編集キー/
■95064 / inTopicNo.2)  Re[1]: エンコーディングそのままでテキストファイル変換
□投稿者/ 魔界の仮面弁士 (2754回)-(2020/06/19(Fri) 18:56:12)
No95063 (furu さん) に返信
> BOMなしUTF8ファイルなのに
> BOMありUTF8ファイルが作成されてしまいました。

読み込み時の BOM の有無判断は自動で行われます。
書き込み時の BOM の有無指定は明示的に行ってください。
https://smdn.jp/programming/netfx/tips/unicode_encoding_bom/
引用返信 編集キー/
■95074 / inTopicNo.3)  Re[2]: エンコーディングそのままでテキストファイル変換
□投稿者/ furu (53回)-(2020/06/22(Mon) 10:20:46)
No95064 (魔界の仮面弁士 さん) に返信
> ■No95063 (furu さん) に返信
> 読み込み時の BOM の有無判断は自動で行われます。
自動で行っているならBOM有無を知っている筈なので
ついでにStreamReader.CurrentEncodingを設定する時に
encoderShouldEmitUTF8Identifierもtrueに
してくれるとありがたいのだが。

それしちゃうとUTF8の判定にEncoding.UTF8と比較が
使えなくなり不便なのかな。

結局、StreamReader.CurrentEncodingを見て
UTF8だとわかったら、
BinaryReaderとかで調べる必要あるということですね
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ