- PR -

ASP.NET(VB) : CSVファイル出力時の文字化けを直したい

1
投稿者投稿内容
yuki
会議室デビュー日: 2004/02/25
投稿数: 3
投稿日時: 2004-02-25 10:51
お世話になります.ASP.NET初心者です.
Accessからの検索結果(リスト)を一度ブラウザに表示させた後に,
同じリストを「CSVファイル」に出力させたら文字化けを起こしました(UNICODE?).
S−JIS指定で出力させたいのですが・・・
どなたかにご教授頂きたく,宜しくお願い致します.

=====

Dim DT As DATE = Now()
Dim EDATE As String
EDATE = DT.ToString("yyyymmddhhmmss")
Dim CSVPATH As String = Server.MapPath("csvout/l_ki_st_selist_" & EDATE & ".csv")
Dim ACCLOG As String = DateTime.Now & " , " & Request.ServerVariables("REMOTE_ADDR") & " , " & Request.ServerVariables("HTTP_REFERER")
Dim csvWRITE As StreamWriter
csvWRITE = File.AppendText(CSVPATH)
'
'----- Header -----
csvWRITE.WriteLine(ACCLOG)
csvWRITE.WriteLine(" ")
csvWRITE.Write("ID")
csvWRITE.Write(" , ")




[ メッセージ編集済み 編集者: yuki 編集日時 2004-02-25 10:52 ]
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2004-02-25 12:09
引用:

yukiさんの書き込み (2004-02-25 10:51) より:
S−JIS指定で出力させたいのですが・・・
--
Dim csvWRITE As StreamWriter
csvWRITE = File.AppendText(CSVPATH)


FileStreamを使ってファイルをオープンし、StreamWriterを明示的に作成します。
StreamWriterを作成する際にShift_JISのエンコーディングを指定してください。
yuki
会議室デビュー日: 2004/02/25
投稿数: 3
投稿日時: 2004-02-25 15:35
なちゃさま
早速の返信ありがとうございます.


以下の様に書き換えてみましたが,
「'Shift_JIS' は 'System.Text.Encoding' のメンバではありません」
とコンパイルエラーが出てしまいます.
どこがおかしいのでしょうか?(初心者ゆえお許しください・・・)

=====

Dim FS As New FileStream(CSVPATH,FileMode.Create)
Dim csvWRITE As StreamWriter
csvWRITE = New StreamWriter(FS,Encoding.Shift_JIS)
csvWRITE = File.AppendText(CSVPATH)
'
'----- Header -----
csvWRITE.WriteLine(ACC)
csvWRITE.WriteLine(" ")
csvWRITE.Write("ID")
csvWRITE.Write(" , ")
 ・
 ・
 ・





Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-02-25 16:03
http://www.atmarkit.co.jp/bbs/phpBB/search.php
ここで、「キーワード」に「shift_jis」を入力し、
「会議室」を「Insider.NET」にして、「検索」ボタンをクリック
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2004-02-25 16:02
引用:

yukiさんの書き込み (2004-02-25 15:35) より:
以下の様に書き換えてみましたが,
「'Shift_JIS' は 'System.Text.Encoding' のメンバではありません」
とコンパイルエラーが出てしまいます.
csvWRITE = New StreamWriter(FS,Encoding.Shift_JIS)


Encodingのヘルプを見てください。
Shift_JISというメンバはありません。
規定で用意されていないエンコーディングを取得するには、GetEncodingメソッドを使用します。
まあ、"Shift_JIS"と名前ででも指定して取得すればよいでしょう。
あるいは、Encoding.Defaultでもいいかもしれませんが、明示的に指定するほうが良いでしょう(これは場合にもよりますが)。

あ、あと、FileStreamでファイルをオープン云々て書きましたが、特にオプション指定がないのであれば、多分StreamWriterをファイル名をを指定して作成すればいけそうですね(Encodingの指定は必要です)。
# 「FileStreamで開くよりいい」といっているわけではありません、念のため。
yuki
会議室デビュー日: 2004/02/25
投稿数: 3
投稿日時: 2004-02-25 16:24
Jittaさま なちゃさま

再度早速のご返信ありがとうございます.


少し自分で解決する努力が足りないようでした.(^o^;
先ずはヘルプ・関連事項等を見て情報を収集したいと思います.
さて,もう一頑張りします!!
(どうしてもダメだったらまた舞い戻って来ます・・・)

追伸 皆さんご丁寧な対応で感謝しております.m(_ _)m
1

スキルアップ/キャリアアップ(JOB@IT)