iostream и буква "я".
Доброго времени суток.
Обращаюсь за помощью с такой проблемой: в виндовской кодировке буква "я" имеет интересный код 0xFF или -1, что соответствует константе EOF для iostream'ов. Соответсвенно, при попытке прочитать из потока строку с буквой "я", поток на этой букве загибается.
Так вот, что бы такое предпринять, чтобы все же русские строки передавались нормально? То есть, можно, конечно, как-то перекодировать строку чем-то вроде CharToOem(), а потом обратно, но это уж очень некрасиво. Существуют ли нормальные решения проблемы?
Ситуация, судя по всему, стандартная, но гуление было безуспешным.
Еще, наверное, важная деталь: код, непосредственно обращающийся к потоку не мой, а boost::archive::xml_iarchive, зато реализация streambuf - самолепная.
Заранее благодарен.
X-posted to
ru_programming.
UPD: спасибо отвечавшим, проблемы больше нет.
Обращаюсь за помощью с такой проблемой: в виндовской кодировке буква "я" имеет интересный код 0xFF или -1, что соответствует константе EOF для iostream'ов. Соответсвенно, при попытке прочитать из потока строку с буквой "я", поток на этой букве загибается.
Так вот, что бы такое предпринять, чтобы все же русские строки передавались нормально? То есть, можно, конечно, как-то перекодировать строку чем-то вроде CharToOem(), а потом обратно, но это уж очень некрасиво. Существуют ли нормальные решения проблемы?
Ситуация, судя по всему, стандартная, но гуление было безуспешным.
Еще, наверное, важная деталь: код, непосредственно обращающийся к потоку не мой, а boost::archive::xml_iarchive, зато реализация streambuf - самолепная.
Заранее благодарен.
X-posted to
ru_programming.UPD: спасибо отвечавшим, проблемы больше нет.