![](/img/trans.png)
[英]Why does boost::spirit::unicode::char_ no longer work with UTF-8 char* strings?
[英]Does boost locale supports UTF-8 as internal encoding for char* based strings and streams
在內部,我可以使用 char 或 wchar_t 對我的字符串和流進行應用程序內部編碼。 char* 可以保存單字節編碼數據或多字節編碼數據。 例如 ascii 和 UTF-8。 我可以使用 char8_t、char16_t 或 char32_t 來闡明內部編碼。 但是 boost locale 還不能正確支持這些字符類型。 在使用std::basic_string<char>
和std::basic_fstream<char>
等時假設 boost 語言環境使用 utf-8 作為內部編碼是否可以保存?
例子:
// Source file is encoded in UTF-8
boost::locale generator gen;
std::locale loc = gen("de_DE.UTF-8");
std::cout.imbue(loc);
std::string text = "Die Höhle des Löwen\n"s;
std::cout << text; // Correctly handles 'ö' on all platforms.
根據本文檔,在Windows上是的: https://www.boost.org/doc/libs/1_74_0/libs/locale/doc/html/default_encoding_under_windows.ZFC35FZ30D5FCC69D2E386
在其他平台上,通常char *
被視為utf-8
編碼字符串
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.