• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【C#】StreamReaderクラスのエンコード)

C#でShift_JISエンコードのStreamReaderクラスを使用してCSVファイルを読み込む際に文字化けする問題について

このQ&Aのポイント
  • C#のStreamReaderクラスを使用してShift_JISエンコードのcsvファイルを読み込んでいる際に、環境依存文字が文字化けせずにそのまま取得されてしまう問題が発生しています。
  • 通常、Shift_JISに存在しない文字は文字化けして取得されるはずですが、この場合は文字化けせずにそのまま取得されてしまいます。
  • DBの文字コードがShift_JISであるため、これまま通りにDBに渡すとエラーが発生してしまいます。

質問者が選んだベストアンサー

  • ベストアンサー
  • axsies
  • ベストアンサー率64% (38/59)
回答No.1

.NET Frameworkではstring型は全てUnicodeとして扱われます。 それ以外の、ShiftJISのようなエンコーディングで表された文字列は、byte[]でただのバイト列としてしか扱うことができません。 提示されたコードのsrオブジェクトの働きは、ストリームからのバイト列をShiftJISの文字列と仮定し、Unicodeに変換するというものです。 StreamWriterを用いて、ShiftJISに変換したバイト列を取得し、それをDBに渡せば目的の処理は達せられると思います。

mirumiru36
質問者

お礼

ありがとうございました!

関連するQ&A