C :將字串轉換為wstring,同時保留編碼
給定一個包含日文字元的字串s,並希望分配其內容到一個wstring,ws。任務是在不引入任何編碼問題的情況下執行此任務。
解決方案:
利用 C 11 及更高版本,可以僅使用標準庫完成此任務。
第1 步:包含必要的內容標頭
1 2 3 | # include <locale>
# include <codecvt>
# include <string>
|
登入後複製
第2 步:建立轉換器
1 | std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
|
登入後複製
第2 步:建立轉換器
此轉換器將處理UTF-8(s的編碼)之間的轉換和UTF-16(ws的編碼)。
1 | std::wstring ws = converter.from_bytes(s);
|
登入後複製
第3步:轉換將字串轉換為wstring
1 2 3 4 5 | std::string s = "おはよう" ;
std::wstring ws;
std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
ws = converter.from_bytes(s);
|
登入後複製
範例:
例如:
注意:此解決方案假設 s 包含有效的 UTF-8 編碼的 Unicode data.對於更複雜的編碼場景,請考慮使用 std::codecvt_utf8.
以上是如何在 C 中安全地將 UTF-8 字串轉換為 wstring?的詳細內容。更多資訊請關注PHP中文網其他相關文章!