In a Linux environment, I have a piece of code for reading unicode files, similar as shown below.
However, special characters (like danish letters æ, ø and å) are not handled correctly. For the line 'abcæøåabc' then output is simply 'abc'. Using a debugger I can see that the contents of wline
is also only a\000b\000c\000
.
#include <fstream>
#include <string>
std::wifstream wif("myfile.txt");
if (wif.is_open())
{
//set proper position compared to byteorder
wif.seekg(2, std::ios::beg);
std::wstring wline;
while (wif.good())
{
std::getline(wif, wline);
if (!wif.eof())
{
std::wstring convert;
for (auto c : wline)
{
if (c != '\0')
convert += c;
}
}
}
}
wif.close();
Can anyone tell me how I get it to read the whole line?
Thanks and regards