怎么输出UTF-8编码的文本文件?

appleller 2013-08-29 11:45:46
怎么输出UTF-8编码的文本文件?

如果是中文输出UTF-8编码的文本文件打开后是不是看不见中文了?
...全文
605 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2013-09-09
  • 打赏
  • 举报
回复
引用 15 楼 appleller 的回复:
New IO.StreamWriter(myStream) '缺省不带 BOM' 这个不带BOM但没有定义UTF8编码,默认保存为什么编码格式?
UTF-8
引用 16 楼 appleller 的回复:
其中换行符定义为CR+LF是怎么在程序里定义的?
可以通过 NewLine 属性设置。
appleller 2013-09-07
  • 打赏
  • 举报
回复
其中换行符定义为CR+LF是怎么在程序里定义的?
appleller 2013-09-07
  • 打赏
  • 举报
回复
引用 14 楼 Tiger_Zhao 的回复:
[code=VB]New IO.StreamWriter(myStream, System.Text.Encoding.UTF8) '这个带 BOM' New IO.StreamWriter(myStream) '缺省不带 BOM'[/code'
New IO.StreamWriter(myStream) '缺省不带 BOM' 这个不带BOM但没有定义UTF8编码,默认保存为什么编码格式?
Tiger_Zhao 2013-09-05
  • 打赏
  • 举报
回复
引用 12 楼 appleller 的回复:
我用如下功能从DataGridView里输出的CSV文件是否是UTF8格式? 是否是不带BOM头的? 如果不是怎样修改?
[code=VB]New IO.StreamWriter(myStream, System.Text.Encoding.UTF8) '这个带 BOM' New IO.StreamWriter(myStream) '缺省不带 BOM'[/code'
appleller 2013-09-04
  • 打赏
  • 举报
回复
请教: 通过程序直接输出不带BOM头的编码为UTF8格式的CSV文件一般怎么处理?
appleller 2013-09-04
  • 打赏
  • 举报
回复
我用如下功能从DataGridView里输出的CSV文件是否是UTF8格式? 是否是不带BOM头的?
如果不是怎样修改?

Public Shared Sub ExportToCSV(ByVal dgv As DataGridView, Optional ByVal strfilename As String = "")
Dim saveFileDialog As New SaveFileDialog()
saveFileDialog.Filter = "Excel文件(*.csv)|*.csv|所有文件(*.*)|*.*"
saveFileDialog.FilterIndex = 0
saveFileDialog.FileName = strfilename
saveFileDialog.RestoreDirectory = True
saveFileDialog.Title = "保存为CSV文件"
saveFileDialog.ShowDialog()

If saveFileDialog.FileName.IndexOf(":") < 0 Then
Exit Sub
End If
'被点了"取消"
Dim myStream As IO.FileStream
myStream = saveFileDialog.OpenFile()
Dim sw As New IO.StreamWriter(myStream, System.Text.Encoding.UTF8)
Dim columnTitle As String = ""
Try
'写入列标题
For i As Integer = 0 To dgv.ColumnCount - 1
If i > 0 Then
'columnTitle += vbTab
columnTitle += ","
End If
columnTitle += dgv.Columns(i).HeaderText
Next

sw.WriteLine(columnTitle)

'写入列内容
For j As Integer = 0 To dgv.Rows.Count - 1
Dim columnValue As String = ""
For k As Integer = 0 To dgv.Columns.Count - 1
If k > 0 Then
columnValue += ","
End If
If dgv.Rows(j).Cells(k).Value Is Nothing Then
columnValue += ","
Else
columnValue += dgv.Rows(j).Cells(k).FormattedValue.ToString.Trim()
End If
Next
sw.WriteLine(columnValue)
Next
sw.Close()
myStream.Close()
Catch e As Exception
MessageBox.Show(e.ToString())
Finally
sw.Close()
myStream.Close()
End Try
End Sub

另外,本机输出用EXCEL打开或notepad打开都OK,
其他机器输出拷贝过来notepad打开也ok,但EXCEL打开内容中文部分显示乱码,是否和EXCEL版本有关系?
jshi123 2013-09-03
  • 打赏
  • 举报
回复
看你用什么编辑器,比如vs有utf8 with signature和utf8 withou signature两种编码,大多数编辑器也都有两种选择,除了notepad,它只有一种带bom的。
Tiger_Zhao 2013-09-03
  • 打赏
  • 举报
回复
编辑器相关。 比如记事本保存 UTF-8 必定是带 BOM 的。 EmEditor 保存 UTF-8 时还有个选项可选是否带 BOM。
Tiger_Zhao 2013-09-02
  • 打赏
  • 举报
回复
引用 6 楼 appleller 的回复:
带BOM头与不带BOM头有什么区别?
带 BOM 头,文本编辑器可以用明确的编码进行解码,不出错——除非编辑器不支持。 没带 BOM 头,文本编辑器只能猜测或用默认编码进行解码,容易出现“乱码”。
appleller 2013-09-02
  • 打赏
  • 举报
回复
引用 7 楼 Tiger_Zhao 的回复:
[quote=引用 6 楼 appleller 的回复:]带BOM头与不带BOM头有什么区别?
带 BOM 头,文本编辑器可以用明确的编码进行解码,不出错——除非编辑器不支持。 没带 BOM 头,文本编辑器只能猜测或用默认编码进行解码,容易出现“乱码”。[/quote] 请教 是不是普通的文本文件另存的时候,有个编码选择项,选择UTF-8就是不带BOM头的UTF-8的文件了? 我试了一下好像内容没有什么变化
appleller 2013-08-31
  • 打赏
  • 举报
回复
引用 3 楼 Tiger_Zhao 的回复:
'带 BOM 头的'
Dim sw As New System.IO.StreamWriter("C:\temp\1.UTF-8.txt", False, System.Text.Encoding.UTF8)
sw.WriteLine("english")
sw.WriteLine("中文")
sw.Flush()
sw.Close()
(Byte Order Mark) 带BOM头与不带BOM头有什么区别?
threenewbee 2013-08-30
  • 打赏
  • 举报
回复
System.IO.File.WriteAllBytes("C:\1.txt", Encoding.UTF8.GetBytes("字符串"))
threenewbee 2013-08-30
  • 打赏
  • 举报
回复
System.IO.File.WriteAllBytes("C:\\1.txt", Encoding.UTF8.GetBytes("字符串"));
rtdb 2013-08-30
  • 打赏
  • 举报
回复
我的WIN7记事本开UTF8文件没问题。
Tiger_Zhao 2013-08-30
  • 打赏
  • 举报
回复
'带 BOM 头的'
Dim sw As New System.IO.StreamWriter("C:\temp\1.UTF-8.txt", False, System.Text.Encoding.UTF8)
sw.WriteLine("english")
sw.WriteLine("中文")
sw.Flush()
sw.Close()
_VickChen 2013-08-30
  • 打赏
  • 举报
回复
ADODB.Recordset(1) 
DataSet.Tables(0).Rows(0).Item(1)
這兩句代碼是相同的么?

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧