脳梗塞には負けられない!

2008年12月26日に脳梗塞を発症。負けずに自転車と写真とBAND活動に熱中しているY.MATのブログ。

前日の閲覧数
97PV
+SHARE
Twitter Facebook RSS メール

VB.NETで文字化けする

久々に VisualBasic を触っている。
これまで様々な言語で開発をしてきたけど、向いているのか、結構何でも直ぐに出来るようになる。
そういう所もこの仕事を続けてる理由かな。

そんな話はさておき、VBも .NET になってこれまでとは変わってるみたい。
たぶん、これまでのVBばっかりの人はとっつきにくいのかな。
なにしろオブジェクト化されて、Classとか使わなあかんし。
C#とかJavaとかやってたら困らないやろうね。

さて、久々で困ったのがファイル出力。
他のツールのテスト用にDBからデータをCSVファイルに書き出す簡単なプログラムを書く事にした。
普通にファイルを作って、開いて、データを書き込んで閉じるだけのプログラムやけど、簡単すぎて動かしてから問題が発生した。
なんと、普通にファイルを開いただけではエンコードが Unicode(UTF-8)になって、日本語が普通では文字化けしてしまう。
勿論、Unicodeに対応しているエディタ(秀丸とか)だと普通に見れるけど、Shift-JISでないと困るから、さてどないするか。
こんな時に頼りになるのはNet、検索をかけてみたが、どういうわけか今回は空振りが続く。
よっぽど基本的なことなんかな、と思ったけど、空振りの答えも似たレベルが多い。
エンコードの設定から調べなおすとすぐにわかった。

【当初】
Dim sw As StreamWriter = New StreamWriter(filename)

【変更後】
Dim sw As StreamWriter = New StreamWriter(filename,False,System.Text.Encoding.Default)

よく見てもらえれば分かると思うけど、引数を省略したらデフォルト値になる思ってたら、わざわざデフォルト値を引数に入れなあかんかったんです。
正直なところ、OSなり.NETframworkを見るなりして、システムのデフォルト値に合わせられへんのかな?
そんな難しい事やとは思わんねんけど、Microsoftも手抜きしすぎやない?
ジャンル:
キーワード:
エンコード

あわせて読む

人気記事ランキング

  1. System.OutOfMemoryException の例外がスローされました。
  2. DLL (OraOps10.DLL) を読み込めません
  3. 久々のハンダごて
  4. VB.NETで文字化けする
  5. お気に入り 海外ミュージシャンの誕生日一覧(1966年生まれまで)
  6. CPU:命令実行までのプロセス
  7. 室外機
  8. 三年目の脳梗塞記念日です
  9. 高見山(三重県松阪市、奈良県吉野郡東吉野村)
  10. Google Earth の見当違いな場所「ギアナ高地」

この記事のツイート

コメント