boost :: locale :: conv utf8到cp437

时间:2013-07-25 15:51:15

标签: c++ visual-studio-2010 boost localization

过去两天我一直在尝试将utf-8字符串转换为cp437字符串,我已经尝试过this answer

示例情况是将char *utf8="\xC2\xBB"转换为char *cp437="\xAF"(如果愿意,则转换为小数位数为175)。

我想出了很多变化:

struct ConsoleOutputWrapper {
    boost::locale::generator generator;

    std::string c_output; // Charset name
    std::locale l_output; // Locale

    ConsoleOutputWrapper() :
        generator(),
        c_output("CP437")
    {
        generator.locale_cache_enabled(true);
        l_output = generator(c_output);
    }

    void operator<<(const char* str)
    {
        std::cout << boost::locale::conv::from_utf<char>(str, l_output);
    }
};

// Test
ConsoleOutputWrapper k;
k << "\xc2\xbb";

但我所获得的最佳转化为>而不是»

有关如何使用boost转换特殊字符的想法吗?

0 个答案:

没有答案