- 締切済み
VBでWebフォームからのCSV出力を挑戦しているが
あるWebフォームを開発中でOracleDBからのCSVデータ出力にトライしています。 参考書と全く同様の記述をしたのですが画面を実行すると キーワードはサポートされていません : 'unicode' というエラーになってしまいます。 恐らくエンコーディングの部分が問題と思われるのですが、なにぶん素人なもので、どう修正すれば進展するのか分かりません。 どなたかご教示頂けないでしょうか。 Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Dim csvString As String = makeCSVData() Const csvFile As String = "標準原価一覧" Response.Clear() Response.ContentType = "application/octet-stream" Response.AddHeader("Content-Disposition", "attachment; filename=" & ".csv") Response.BinaryWrite(Encoding.GetEncoding("Shift-JIS").GetBytes(csvString)) Response.End() End Sub
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- AKARI0418
- ベストアンサー率67% (112/166)
Response.AddHeader("Content-Disposition", "attachment;filename=" & HttpUtility.UrlEncode(DropDownList1.SelectedValue) & Now.ToShortDateString & ".csv") Response.ContentType = "application/octet-stream" Dim enc As Encoding = Encoding.Default Dim write_string As New StringBuilder 'いろいろ ' ' Response.ContentEncoding = enc Response.Write(write_string.ToString) タイトルはHttpUtility.UrlEncodeを使用しないと文字化けします。 Response.ContentEncodingにEncoding.Defaultを指定すればShift-Jisで出力されます。
お礼
ご返信が遅れて大変申し訳ありませんでした。 見逃しておりました。 こちらは既に解決しております。ご支援をありがとうございました。 Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Dim dtNow As DateTime = DateTime.Now Dim csvString As String = makeCSVData() Dim csvFile As String csvFile = "STDCOSTS_" & dtNow.ToString("yyyyMMddHHmmss") Response.Clear() Response.ContentType = "application/octet-stream" Response.AddHeader("Content-Disposition", "attachment; filename=" & csvFile & ".csv") Response.BinaryWrite(Encoding.GetEncoding("Shift-JIS").GetBytes(csvString)) Response.End() End Sub