Я пытаюсь прочитать файл, закодированный в ISO-8859 (ansi), и он содержит некоторые западноевропейские символы, такие как "é".
Когда я пытаюсь прочитать файл и вывести В результате все специальные символы отображаются как �, тогда как обычные алфавиты отображаются правильно.
Если я конвертирую файл в формат utf-8, а затем выполняю ту же работу, все работает отлично.
Действительно ли у кого-нибудь есть идея решить эту проблему? Я пытался использовать wifstream и wstring вместо ifstream и string, но это мало помогло.
Вот мой пример кода:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ifstream myFS;
myFS.open("test.txt", ios::in);
string myString;
if(myFS.is_open()){
while(myFS >> myString)
cout << myString << endl;
}
myFS.close();
return 0;
}
test.txt (формат ISO-8859-15) содержит:
abcd éfg
результат:
abcd
�fg
Любые советы будут оценены. Заранее спасибо!
+)
забыл упомянуть мою системную среду.
Я использую консоль Ubuntu 10.10 (Maverick) с g++ версии 4.4.5
Спасибо!