簡體   English   中英

如何將以utf16編碼的字符串轉換為以UTF-8編碼的字符串?

[英]How to convert a string encoded in utf16 to a string encoded in UTF-8?

我有一個字符串或char [],但是它是用utf-16編碼的,如下所示:

在此處輸入圖片說明

現在,我想用新字符串將其轉換為utf-8,請幫助我! 我已經這樣嘗試過:

在此處輸入圖片說明

但是編譯器告訴我我有問題。 如何解決這個問題呢?

問題很明顯:當cvt.to_bytes()期望std::u16string (作為變量名稱建議)時,您將u16_str定義為std::string

以下代碼對我有用

#include <locale>
#include <codecvt>
#include <iostream>

int main ()
 {
   std::u16string  u16_str { u"aeiuoàèìòùAEIOU" };

   std::wstring_convert<std::codecvt_utf8<char16_t>, char16_t> cvt;

   std::string  u8_str = cvt.to_bytes(u16_str);

   std::cout << u8_str << std::endl;

   return 0;
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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