簡體   English   中英

boost locale 是否支持 UTF-8 作為基於 char* 的字符串和流的內部編碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM