Codificación y decodificación C ++ 11 UTF8

En pocas palabras, la codificación se refiere a convertir información válida en una cadena o flujo de bytes de acuerdo con un formato específico, y la decodificación se refiere a convertir una cadena o flujo de bytes en información válida de acuerdo con un formato específico. Asegúrese de que se use el mismo formato al codificar y decodificación para obtener información eficaz. También puede consultar este artículo .


Métodos de C ++ 11

C ++ 11 proporciona std :: wstring_convert y std :: codecvt_utf8 para codificar y decodificar UTF8

#include <locale>
#include <codecvt>

std::string utf8_encode(const std::wstring& source)
{
    
    
	return std::wstring_convert<std::codecvt_utf8<wchar_t>>().to_bytes(source);
}

std::wstring utf8_decode(const std::string& source)
{
    
    
    return std::wstring_convert<std::codecvt_utf8<wchar_t>>().from_bytes(source);
}

Úselo de la siguiente manera,

int main()
{
    
    
    std::wstring dd = L"你好";
    std::string ddbytes = utf8_encode(dd); // 按照UTF8格式进行编码,转为常规string,即得到UTF8格式的字节流
    
	
	std::wstring ret = utf8_decode(ddbytes); // 按照UTF8格式对字节流进行解码,转为wstring
}

Supongo que te gusta

Origin blog.csdn.net/whahu1989/article/details/109731625
Recomendado
Clasificación