вторник, 17 ноября 2009 г.

Visual Studio & UTF8

Знаете ли вы, что компилятор Visual C++ поддерживает сорс файлы в кодировке UTF8? Для пользователя это означает, что можно писать комментарии и строковые констаны на различных языках одновременно.
wstring a=L"grüßen";
wstring b=L"שלום עולם!"; // привет мир!
wstring c=L"中文";
Единственное, что требуется — сохранить cpp-файл в кодировке UTF8 с BOM. Для этого нужно в меню File->Advances Save Options... выбрать Unicode(UTF-8 with signature) - Codepage 65001 в пункте Encoding.



Что интересно, файлы без BOM некорректно определяются компилятором. Комментарий разработчкиков компилятора можно посмотреть тут (внизу).

А что если мы хотим использовать мультибайтовые последовательности? В этом случае тоже все хорошо — Visual Studio поддерживает директиву execution_character_set начиная с Visual Studio 2010. Для VS2008 существует хот-фикс. Для корректной работы достаточно добавить следующий код в каждый файл:
#pragma execution_character_set("utf-8")

Комментировать в ВКонтакте