Используйте поддержку языка вместе с Firebreath

Я создаю расширение Chrome с помощью Firebreath: http://slimtext.org/ И я сталкиваюсь с проблемой: расширение не очень хорошо поддерживает китайские символы в Windows. После долгих исследований я нашел это: http://www.boost.org/doc/libs/1_50_0/libs/locale/doc/html/default_encoding_under_windows.html

Я думаю, что решение состоит в том, чтобы использовать boost / locale. Но проект https://github.com/firebreath/firebreath-boost, похоже, не содержит boost / locale. Ветвь 1.50.0 содержит более новый импульс, чем ветвь master, но ни один из них не содержит boost / locale.

Я пытался использовать внешний буст или скопировать код локали из внешнего буста, но потерпел неудачу (не смог связаться с локалью при выполнении make)

Каково ваше предложение? Как я могу использовать Boost Locale вместе с Firebreath?

2 ответа

Решение

Мне не удалось скомпилировать мой проект Firebreath с внешним Boost в Windows. И после долгих исследований я начинаю сомневаться в том, что повышение / локаль - это ключ к моей первоначальной проблеме: проблема кодирования китайских символов.

Наконец-то я решил это без boost/locale:

  1. по возможности используйте wstring вместо string
  2. Возможно, вам придется написать код отдельно для Windows и других операционных систем, например:

#ifdef _WIN32

    file.open(path.c_str()); //path is std::wstring

#else

    fs::path the_path(path);            
    file.open(the_path.generic_string().c_str());

#endif

Firebreath-Boost - это лишь часть полного ускорения. Для использования всех бустов установите буст вручную и используйте системный буст. см. http://www.firebreath.org/display/documentation/Prep+Scripts

Другие вопросы по тегам