如何从 UTF16 编码的字符串中获取解码后的字符串
How to get decoded String from UTF16 encoded String
我正在尝试从 UTF16 编码的字符串中获取解码后的字符串。
UTF16的当前值为\u5f00\u53d1\u8005
,原始字符串为开发者
换句话说,\u5f00\u53d1\u8005
==>
开发者
使用 C++`。
如何使用 C++ 执行此操作?
假设您将其存储在 wchar_t
数组或 std::string
中,这只是正确设置您的环境以处理宽字符的问题,以这个控制台为例:
#include <iostream>
#include <fcntl.h>
int main(){
_setmode(fileno(stdout), _O_WTEXT);
const wchar_t str[] = L"\u5f00\u53d1\u8005";
//std::wstring str = L"\u5f00\u53d1\u8005";
std::wcout << str;
}
就这么简单
要与 mfc
一起使用,特别是也许您应该看看 MultiByteToWideChar
and/or WideCharToMultiByte
。
Code Project 中还有 this post,可能正是您所需要的。
我正在尝试从 UTF16 编码的字符串中获取解码后的字符串。
UTF16的当前值为\u5f00\u53d1\u8005
,原始字符串为开发者
换句话说,\u5f00\u53d1\u8005
==>
开发者
使用 C++`。
如何使用 C++ 执行此操作?
假设您将其存储在 wchar_t
数组或 std::string
中,这只是正确设置您的环境以处理宽字符的问题,以这个控制台为例:
#include <iostream>
#include <fcntl.h>
int main(){
_setmode(fileno(stdout), _O_WTEXT);
const wchar_t str[] = L"\u5f00\u53d1\u8005";
//std::wstring str = L"\u5f00\u53d1\u8005";
std::wcout << str;
}
就这么简单
要与 mfc
一起使用,特别是也许您应该看看 MultiByteToWideChar
and/or WideCharToMultiByte
。
Code Project 中还有 this post,可能正是您所需要的。