【发布时间】:2013-09-05 14:54:31
【问题描述】:
如何设置 .NET 控制台应用程序读取输入文件的编码?
我有一个 UTF16 文件,当我调用 Console.ReadLine 时,很明显没有正确观察到编码。来自该调用的字符串看起来很糟糕。
Sublime Text 2 报告文件编码为:
UTF-16 LE with BOM
代码如下:
pstrLine = Console.ReadLine() //bad line here
Do
pactHandler(pstrLine)
pstrLine = Console.ReadLine()
Loop Until pstrLine Is Nothing
一行回来了,我可以阅读它,但它并不完全正确。每个字符之间似乎都有一个空格。并且该行以不可打印的字符开头。
当我查看输入文件时,它看起来像:
MY DATA IS HERE
当它通过ReadLine进来时:
$M Y D A T A I S H E R E
$ 代表不可打印的字符,看起来像一个块。
【问题讨论】:
-
我猜你正在使用输入重定向。不要那样做,你不能用它可靠地检测文本编码。实际使用 StreamReader 打开文件。
标签: .net vb.net encoding console