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

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

広告

※このエリアは、60日間投稿が無い場合に表示されます。記事を投稿すると、表示されなくなります。

VB.NETで文字化けする

2005-03-31 18:43:19 | IT技術的なこと
久々に 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も手抜きしすぎやない?
コメント   この記事についてブログを書く
この記事をはてなブックマークに追加 mixiチェック
« カーッ・・ペッ・・・オヤジだな | トップ | ウォシュレットが増えてる? »
最近の画像もっと見る

コメントを投稿


コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。

あわせて読む

トラックバック

この記事のトラックバック  Ping-URL
  • 30日以上前の記事に対するトラックバックは受け取らないよう設定されております。
  • 送信元の記事内容が半角英数のみのトラックバックは受け取らないよう設定されております。
  • ※ブログ管理者のみ、編集画面で設定の変更が可能です。