我有一个程序,简而言之,从SQL数据库读取值并将它们写入制表符分隔的文本文件。
问题是数据库中的某些值具有特殊字符(TM,破折号,省略号等)。当写入文本文件时,格式化将丢失并且它们会被视为垃圾“â”或“â” €“等”
当在立即窗口中查看该值时,在将其写入txt文件之前,一切看起来都很好。我的猜测是这是一个编码问题。但是,我不确定如何继续,在哪里寻找或寻找什么。
这是ASCII还是UTF-8?如果它是其中之一,在将其写入文本文件之前如何纠正它。
以下是我如何构建文本文件(其中feedStr是StringBuilder)
objReader = New StreamWriter(filePath)
objReader.Write(feedStr)
objReader.Close()
答案 0 :(得分:2)
StreamWriter的默认编码是UTF8(没有字节顺序标记)。您的结果文件没问题,问题是您之后打开了什么?如果在支持UTF8的文本编辑器中打开它,则字符应该按照您想要的方式显示。
您也可以用其他编码编写文本文件,例如iso-8859-1(latin1)
objReader = New StreamWriter(filePath, false, Encoding.GetEncoding("iso-8859-1"))