BeanDog <(E-Mail Removed)> wrote:
> I can't seem to read the long-dash character from a text file in VC++ Express
> 2005 Beta 1. My code is as follows:
>
> //either this:
> FileStream ^pFile = gcnew FileStream(strPath, FileMode::Open,
> FileAccess::Read);
> BinaryReader ^pReader = gcnew BinaryReader(pFile);
> strText = gcnew String(pReader->ReadChars(pFile->Length));
>
> //or this:
> StreamReader ^pFile = gcnew StreamReader(strPath);
> strText = pFile->ReadToEnd();
>
> Either way, when my text file includes the en-dash character (the long dash,
> character 151, in C it's '\x97'), it's not included in strText. Nothing is
> replaced for it; it's as if the character doesn't exist in the file.
>
> Any solutions?
It may be character 151 in some character encoding, but it's not going
to be a single byte 151 in UTF-8, which is the default encoding for
BinaryReader and StreamReader. You need to specify the appropriate
encoding - possibly Encoding.Default, but that's something you'll need
to determine for yourself.
--
Jon Skeet - <(E-Mail Removed)>
http://www.pobox.com/~skeet
If replying to the group, please do not mail me too