【发布时间】:2014-02-04 07:09:17
【问题描述】:
我想知道是否有任何方法可以将 unicode 代码转换为 C++ 11 中的字符串或字符。 我一直在尝试使用具有以下编码的扩展拉丁 unicode 字母 Á(例如):
字母:Á
Unicode:0x00C1
UTF8 文字:\xc3\x81
如果硬编码为:
const char* c = u8"\u00C1";
但是如果我得到一个短字节序列,我怎么能做相当于得到 char* 或 std::string 'Á'?
编辑,解决方案:
我终于做到了,如果有人需要,这里是解决方案:
std::wstring ws;
for(short input : inputList)
{
wchar_t wc(input);
ws += wc;
}
std::wstring_convert<std::codecvt_utf8<wchar_t>> cv;
str = cv.to_bytes(ws);
感谢 cmets 他们非常有帮助。
【问题讨论】:
-
我已经使用 wchar_t 加载 unicode 字节,并使用 wstring 连接它们,但我仍然遇到从中检索普通 char* 或 std::string 的问题,有什么想法吗?
-
如果你使用
std::wstring_convert::to_bytes这很简单 -
专业提示:只需使用
auto