Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String Unicode到char*c++;11 < >我想知道是否有任何方法将Unicode代码转换成C++ 11中的字符串或字符。 我一直在尝试使用扩展的拉丁unicode字母Á(作为一个示例),它具有以下编码:_String_C++11_Unicode_Char - Fatal编程技术网

String Unicode到char*c++;11 < >我想知道是否有任何方法将Unicode代码转换成C++ 11中的字符串或字符。 我一直在尝试使用扩展的拉丁unicode字母Á(作为一个示例),它具有以下编码:

String Unicode到char*c++;11 < >我想知道是否有任何方法将Unicode代码转换成C++ 11中的字符串或字符。 我一直在尝试使用扩展的拉丁unicode字母Á(作为一个示例),它具有以下编码:,string,c++11,unicode,char,String,C++11,Unicode,Char,信:Á 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::wst

信:Á
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);
std::wstring-ws;
for(短输入:inputList)
{
wchar_t wc(输入);
ws+=wc;
}
std::wstring_转换cv;
str=cv.to_字节(ws);

感谢您的评论,他们非常有用。

问题在于
char
只有一个字节长度,而unicode字符需要两个字节的大小

您仍然可以将其视为char*,但必须记住,您不是在处理ascii字符串(将有零)


您可能必须切换到
wchar\u t

问题在于
char
只有一个字节长度,而unicode字符需要两个字节的大小

您仍然可以将其视为char*,但必须记住,您不是在处理ascii字符串(将有零)


您可能必须切换到
wchar\u t
C++11标准包含
codevt\u utf8
,它在一些内部字符类型(如果编译器有,请尝试
char16\u t
,否则
wchar\u t
)和UTF-8编码之间进行转换。

C++11标准包含
code>VT utf8
,它在某些内部字符类型(如果编译器有,请尝试
char16\u t
,否则
wchar\u t
)和UTF-8编码之间进行转换。

使用我已经使用wchar\u t加载unicode字节,并使用wstring对其进行压缩,但我仍然无法从中检索正常字符*或std::字符串,有什么想法吗?如果你使用这一技巧:只需使用
auto
use我已经使用wchar\u t加载unicode字节,并使用wstring对其进行压缩,但我仍然无法从中检索正常的char*或std::string,有什么想法吗?如果你使用这一技巧:只需使用
auto
我知道使用wchar\u t我可以检索它,但我仍然需要转换为char*或std::string。无论如何,感谢您的回复。我知道使用wchar\u t我可以检索它,但我仍然需要转换为char*或std::string。无论如何,谢谢你的回复