我正在尝试将从谷歌联系人导出的.csv文件导入VB.net中的文本框。出于某种原因,éåäö等字符在导入时变为 。
这是用于导入文件的代码:
Dim ofd As New OpenFileDialog()
ofd.CheckFileExists = True
ofd.CheckPathExists = True
ofd.Filter = "Text Files|*.csv" 'for multiple filters do this:
'ofd.Filter = "Text Files, XML Files|*.txt;*.xml"
If ofd.ShowDialog() = DialogResult.OK Then
Using sr As New StreamReader(ofd.FileName)
txtInput.Text = sr.ReadToEnd()
End Using
End If
我该如何解决这个问题?
答案 0 :(得分:2)
您正在使用错误的编码读取文件。
找出它的真实编码(可能是Encoding.GetEncoding(1252)
),然后将正确的Encoding
实例传递给您使用StreamReader
构造函数的任何方法。
答案 1 :(得分:0)
.CSV文件是用ANSII编码的。导入时没有找到如何使用ANSII所以我使用UTF-8重新保存了文件,所以现在它可以工作了。我确信有一种方法可以做到这一点,而不必像这样手动完成,但我现在必须这样做。
答案 2 :(得分:0)
Private Sub cmdStore_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStore.Click
'InsertDBValues()
Dim filename As String = "C:\gProducts.csv"
Dim fields As String()
Dim delimiter As String = ","
Using parser As New TextFieldParser(filename)
parser.SetDelimiters(delimiter)
While Not parser.EndOfData
' Read in the fields for the current line
fields = parser.ReadFields()
' Add code here to use data in fields variable.
txtName.Text = fields(1).ToString ' likewise give all textbox
End While
End Using
End Sub