![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Boost.Locale: Default Encoding under Microsoft WindowsBoost , ,
Default Encoding under Microsoft Windows Все современные операционные системы используют Unicode.
В результате радикально разных подходов очень трудно писать портативные приложения, знакомые с Unicode. Boost Locale полностью поддерживает как узкий, так и широкий API. Кодирование символов по умолчанию предполагается UTF-8 в Windows. Так что если по умолчанию операционная система Locale является «English_USA.1252», то по умолчанию для Boost. Локальность в Windows будет «en_US.UTF-8». Когда созданный локальный объект устанавливается глобально, тогда любые библиотеки, которые используют< Хорошим примером такой библиотеки является Boost.Filesystem v3. Например, #include <boost/locale.hpp>
#include <boost/filesystem/path.hpp>
#include <boost/filesystem/fstream.hpp>
int main()
{
// Create and install global locale
std::locale::global(boost::locale::generator().generate(""));
// Make boost.filesystem use it
boost::filesystem::path::imbue(std::locale());
// Now Works perfectly fine with UTF-8!
boost::filesystem::ofstream hello("שלום.txt");
}
Однако такое поведение может нарушить существующее программное обеспечение, которое предполагает, что текущее кодирование представляет собой кодирование одним байтом, такое как кодовая страница 1252. boost::locale::generatorкласс имеет свойствоuse_ansi_encoding(), что позволяет изменить поведение на унаследованное и выбрать кодовую страницу ANSI в качестве кодирования системы по умолчанию. Таким образом, когда текущая локализация «English_USA.1252» и<
Статья Boost.Locale: Default Encoding under Microsoft Windows раздела может быть полезна для разработчиков на c++ и boost. Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: ::
|
||||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |