C# 通过字符编码读取StreamReader
我需要读取文本文件与ASCII编码字符的字符。如果我在文件中有撇号字符,那么我会得到问号。我检查了文件是否为ASCII格式,这样就不会有问题了C# 通过字符编码读取StreamReader,c#,.net,encoding,C#,.net,Encoding,我需要读取文本文件与ASCII编码字符的字符。如果我在文件中有撇号字符,那么我会得到问号。我检查了文件是否为ASCII格式,这样就不会有问题了 StreamReader reader = new StreamReader(this.path, Encoding.ASCII); while (!reader.EndOfStream) { char chr = (char) reader.Read(); // if i read character ’ then the conte
StreamReader reader = new StreamReader(this.path, Encoding.ASCII);
while (!reader.EndOfStream)
{
char chr = (char) reader.Read();
// if i read character ’ then the content of chr is: 63 '?'
// but i need aposthrope not questionmark
}
您的源必须以不同的编码格式保存。如果你想把问号63改成撇号39,你所要做的就是这样修改你的代码
StreamReader reader = new StreamReader(this.path, Encoding.ASCII);
int c = 0;
while (!reader.EndOfStream)
{
c=reader.Read()
char chr = c==63?(char)39:(char)c;
}
学习新知识:?::是三元运算符,是一个很好的简写形式
检查条件?如果结果为真:如果结果为假
这段代码运行良好。您的文件可能不在ASCIIU中。请使用十六进制编辑器来确保文件中的'29x 39@TaW问题解决了——那个字符实际上是不同的字符。我应该检查两次。如果你想保持简单,你可以随时手动更改它。