修复字符串中的特殊字符

时间:2010-08-03 19:18:22

标签: asp.net vb.net character-encoding

我有一个程序,简而言之,从SQL数据库读取值并将它们写入制表符分隔的文本文件。

问题是数据库中的某些值具有特殊字符(TM,破折号,省略号等)。当写入文本文件时,格式化将丢失并且它们会被视为垃圾“â”或“â” €“等”

当在立即窗口中查看该值时,在将其写入txt文件之前,一切看起来都很好。我的猜测是这是一个编码问题。但是,我不确定如何继续,在哪里寻找或寻找什么。

这是ASCII还是UTF-8?如果它是其中之一,在将其写入文本文件之前如何纠正它。

以下是我如何构建文本文件(其中feedStr是StringBuilder)

objReader = New StreamWriter(filePath)
objReader.Write(feedStr)
objReader.Close()

1 个答案:

答案 0 :(得分:2)

StreamWriter的默认编码是UTF8(没有字节顺序标记)。您的结果文件没问题,问题是您之后打开了什么?如果在支持UTF8的文本编辑器中打开它,则字符应该按照您想要的方式显示。

您也可以用其他编码编写文本文件,例如iso-8859-1(latin1)

objReader = New StreamWriter(filePath, false, Encoding.GetEncoding("iso-8859-1"))