Many times, as a beginner in programming with MS Visual Studio and as a Spanish speaker, I have had problems dealing with non-English characters. This simple and short article describes how to read/write text files using the UTF8 characters map and some problems I had with Visual Studio 2005.
During my university life, all the programming that I learned was orientated toward create background code, not end user programs. So I was familiar with common problems associated with the GCC compiler, and everything worked fine. That was until I had to make a end user app. This is a not very big wall, but a one for many. I want to share how I sorted it.
Using the Code
I first tried to use the basic
fstream class, but in VS, the kind of char that is used is the 7-bit char, and when trying to use it with
wchar_t, no overloading function errors were shown. So, since that, I decided that I had no more choice than using the famous CLR, not knowing that this was just the beginning of my problems.
I started with the
FileStream class, with no great results. The string that is used is a 7-bit (again). Then, finally, I found the
StreamWrite classes. Shown here is some simple code to read and write a file using this character map:
using namespace System;
using namespace System::IO;
using namespace System::Text;
int main(array<System::String ^> ^args)
Console::WriteLine(L"Enter file name: ");
filein = Console::ReadLine();
fileout = "out"+filein;
StreamReader ^srp = gcnew StreamReader(filein,
StreamWriter ^swp = gcnew StreamWriter(fileout, false,
swp->WriteLine(L"Some simple header text with á é ä Ñe");
String ^cont ;
while (cont = srp->ReadLine())
Points of Interest
An interesting point is that the text files generated in this program were well read on the VS file editor. I checked this with the context editor. I think may be this is because of the default language setting of VS.