Как понимать русские символы в ASCII формате
От: Аноним  
Дата: 29.11.03 14:05
Оценка:
ну так вот надо переделать txt файл в ASCII формате в вордовский doc файл.
Если использовать вот это:

protected void Decode(FileStream inStream)
{
    byte [] b = new Byte[inputStream.Length];
    inStream.Read(b,0,(int)inputStream.Length);
    inStream.Close();
    char [] chars = new Char[b.Length];
    //---------
    ASCIIEncoding encod = new ASCIIEncoding();
    encod.GetDecoder().GetChars(b,0, b.Length, chars, 0);
    richTextBox1.AppendText(new String(chars));
}


То вместо всех русских символов выводиться "?", и притом в массиве b , после операции чтения из потока, коды всех русских символов равны 63, что действительно означает — "?". Так что подскажите как правильно прочитать символы из потока в массив байт, или как все это сделать другим способом.
Спасибо.
Re: Как понимать русские символы в ASCII формате
От: warlockonline Россия  
Дата: 29.11.03 14:08
Оценка:
Здравствуйте, Аноним, Вы писали:

А>То вместо всех русских символов выводиться "?", и притом в массиве b , после операции чтения из потока, коды всех русских символов равны 63, что действительно означает — "?". Так что подскажите как правильно прочитать символы из потока в массив байт, или как все это сделать другим способом.


Возможно это из-за того, что в Винде установлен "Язык по умолчанию для для программ не использующих Юникод" не в значение "Русский"

Попробуй или поменять значение или в ASCIIEncoding явно указать кодировку
Re: Как понимать русские символы в ASCII формате
От: SCS  
Дата: 29.11.03 14:59
Оценка:
Здравствуйте, Аноним, Вы писали:
А>ну так вот надо переделать txt файл в ASCII формате в вордовский doc файл.

если не принципиально считывать массив байт:
StreamReader fs=new StreamReader(@"c:\temp\file.txt", Encoding.ASCII);        
richTextBox1.AppendText(fs.ReadToEnd());

иначе
richTextBox1.AppendText(Encoding.ASCII.GetString(chars));
SCS
Re[2]: Как понимать русские символы в ASCII формате
От: SCS  
Дата: 29.11.03 15:14
Оценка: 5 (1)
Здравствуйте, SCS, Вы писали:

упс
вообще то чистый ASCII — это 7-ми битовая кодировка и русских букв там нет
замени везде выше Encoding.ASCII на
Encoding.GetEncoding(866) — если это DOS кодировка
Encoding.GetEncoding(1251) — если это Win кодировка
SCS
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.