Can't read dash character from file?

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

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?



~BenDilts( void );
 
BeanDog said:
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.
 
Back
Top