Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
-
- std::wstring wstr=L"АБВГ";
- std::cout << (wstr[0] == 0x0410 ? "ok" : "fail" );
-
merlin@merlin-hpmini ~/asdf $ cat test.cpp
#include main() {
std::wstring wstr=L«АБВГ»;
std::cout << (wstr[0] == 0x0410? «ok»: «fail» );
}
merlin@merlin-hpmini ~/asdf $ g++ test.cpp -o test
merlin@merlin-hpmini ~/asdf $ ./test
ok
Вообще, BOM имеет смысл для всех юникодных кодировок, кроме UTF-8. В этой кодировке уже жестко зафиксирован порядок байтов, он не зависит ни от каких маркеров и соответственно в них нет никакого смысла.
Более того, отдельным программам становится плохо от этих маркеров. В примере выше cat и g++ просто не заметили его, как будто его и нет.
более логично перейти на расширенные символы wchar_t и использовать UCS-2.
Кодировки