- - PR -
SHIFT-JIS変換について
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-09-18 17:47
こんにちは、お世話になります。
現在、VB.NETで開発をしています。 テーブルのデータを CSVにデータを出力するシステムを作成中です。 '----------------------------- Private Sub cmdWriteCSV_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdWriteCSV.Click Dim wkSQL As String Dim connStr As String = "data source = \SDCard\BTRS\DB\Common.sdf;" Dim conn As SqlCeConnection = Nothing Dim cmd As SqlCeCommand Dim DbOpen As New Class1 DbOpen.M_dbopen_s(connStr, conn, cmd) 'CSV形式ファイルパスを設定する Dim objFile As New StreamWriter("\SDCard\BTRS\Syuturyoku.csv") Dim strTemp As String Try 'テーブルの内容をCSVに出力する wkSQL = "" wkSQL = wkSQL & " SELECT * " wkSQL = wkSQL & " FROM thMST_MENU " wkSQL = wkSQL & " ORDER BY Menu_PageNO " 'ページ番号 wkSQL = wkSQL & " , Menu_LocationNO " 'メニュー表示位置 cmd.CommandText = wkSQL Dim rdr As SqlCeDataReader = cmd.ExecuteReader Do While rdr.Read() 'データを書き込む Dim wk1 As String : Dim wk2 As String : Dim wk3 As String : Dim wk4 As String : Dim wk5 As String : Dim wk6 As String : Dim wk7 As String If IsDBNull(rdr("Menu_PageNO")) Then wk1 = "" Else wk1 = rdr("Menu_PageNO") If IsDBNull(rdr("Menu_LocationNO")) Then wk2 = "" Else wk2 = rdr("Menu_LocationNO") If IsDBNull(rdr("Menu_Title")) Then wk3 = "" Else wk3 = rdr("Menu_Title") If IsDBNull(rdr("Menu_LblFlg")) Then wk4 = "" Else wk4 = rdr("Menu_LblFlg") If IsDBNull(rdr("Menu_ExeName")) Then wk5 = "" Else wk5 = rdr("Menu_ExeName") If IsDBNull(rdr("Menu_PasswordFlg")) Then wk6 = "" Else wk6 = rdr("Menu_PasswordFlg") If IsDBNull(rdr("Menu_Option")) Then wk7 = "" Else wk7 = rdr("Menu_Option") strTemp = wk1 + "," + wk2 + "," + wk3 + "," + wk4 + "," + wk5 + "," + wk6 + "," + wk7 '結果を表示 objFile.WriteLine(strTemp) Loop objFile.Close() 'ファイルのクローズ rdr.Close() MsgBox("CSV出力が終了しました。") Catch ex As SqlCeException showerrors(ex) Finally conn.Close() End Try End Sub '----------------------------- テーブルのデータに日本語が混ざっていた場合、 出力されたCSVのデータが文字化けしてしまうのですが、 どうすればSHIFT-JISに変換できるのかご教授ください。 よろしくお願いします。 | ||||||||||||
|
投稿日時: 2003-09-18 17:53
StreamWriter(String, Boolean, Encoding)は?
| ||||||||||||
|
投稿日時: 2003-09-18 17:56
Dim objFile As New StreamWriter("\SDCard\BTRS\Syuturyoku.csv", True, "SHIFT-JIS")
と記述すればいいのですか? | ||||||||||||
|
投稿日時: 2003-09-18 18:01
Dim objFile As New StreamWriter("\SDCard\BTRS\Syuturyoku.csv", True, "SHIFT-JIS")
と記述したときに、 objFile に波線が引かれて 『これらの引数で呼び出される、アクセス可能な 'New' がないため、オーバーロードの解決に失敗しました : 'Public Sub New(path As String, append As Boolean, encoding As System.Text.Encoding)': 型 'String' の値を 'System.Text.Encoding' に変換できません。 'Public Sub New(stream As System.IO.Stream, encoding As System.Text.Encoding, bufferSize As Integer)': 型 'String' の値を 'System.IO.Stream' に変換できません。 'Public Sub New(stream As System.IO.Stream, encoding As System.Text.Encoding, bufferSize As Integer)': 型 'Boolean' の値を 'System.Text.Encoding' に変換できません。 』 というエラーが出ます | ||||||||||||
|
投稿日時: 2003-09-18 18:10
宣言時にNewはいらないです。 | ||||||||||||
|
投稿日時: 2003-09-18 18:11
"SHIFT-JIS"という文字列は、Encodingクラスではないのですから、
と出るのが当然です。 System.Text.Encodingを調べてください。 Encodingの使い方がわからなければ、(「シフトJIS」と合わせて)この会議室を検索してください。 …ところで、第2引数が True なのは何故? なんか、第2引数といい、第3引数といい、
のリンク先を読んでいるという気がしないのですが……。 [ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2003-09-18 18:18 ] | ||||||||||||
|
投稿日時: 2003-09-18 18:17
途中で送信してしまいました(汗)。
ぢゃん♪さんが教えてくれたヘルプをご覧になりましたか? そこのサンプルを参考にしてみてください。 | ||||||||||||
|
投稿日時: 2003-09-18 18:37
ヘルプがあったんですね。
よんでいませんでした すみません。参考にしてみます |