【发布时间】:2012-10-17 08:09:58
【问题描述】:
我有一个从流中读取字符串数据的应用程序。字符串数据通常是英文的,但有时会遇到类似“Jalapeño”的内容,而“ñ”则显示为“?”。在我的实现中,我更喜欢将流内容读入字节数组,但我可以通过将内容读入字符串来获得。知道我可以做些什么来使这项工作正确吗?
当前代码如下:
byte[] data = new byte[len]; // len is known a priori
byte[] temp = new byte[2];
StreamReader sr = new StreamReader(input_stream);
int position = 0;
while (!sr.EndOfStream)
{
int c = sr.Read();
temp = System.BitConverter.GetBytes(c);
data[position] = temp[0];
position++;
}
input_stream.Close();
sr.Close();
【问题讨论】:
-
int c实际上为 EOF 持有一个 char 或 -1,对于非 ASCII 值,它看起来像你扔掉了一半的值 并且 从根本上改变了编码...
标签: c# stream ascii non-ascii-characters