我有一个用代码页850编码的文本文件。我正在通过以下方式阅读此文件:
using (var reader = new StreamReader(filePath, Encoding.GetEncoding(850)))
{
string line;
while ((line = reader.ReadLine()) != null)
{
//...
}
//...
}
现在我需要在代码页850中具有该字符的从零开始的索引上方的循环中的字符串line
中的每个字符,如:
for (int i = 0; i < line.Length; i++)
{
int indexInCodepage850 = GetIndexInCodepage850(line[i]); // ?
//...
}
这可能吗int GetIndexInCodepage850(char c)
怎么样?
答案 0 :(得分:4)
在线上使用Encoding.GetBytes()。 CP850是一个8位编码,因此字节数组应该包含与字符串一样多的元素,每个元素都是字符的值。
答案 1 :(得分:3)
只需将文件读取为字节,即可获得代码页850字符代码:
byte[] data = File.ReadAllBytes(filePath);
但是,你不会将它分成几行。您需要在数据中查找的CR和LF的字符代码是13和10.
答案 2 :(得分:1)
你不需要。
您已在streamreader构造函数中指定编码。 从reader.ReadLine()返回的字符串已经使用CP850进行编码