有没有什么方法可以使用字符串文字u8和变量?

时间:2017-10-27 23:39:55

标签: c++ utf-8 string-literals

任何使用u8文字和变量的方法吗?

const char* name[32];
(u8)name//something like this

我需要将名称转换为utf-8,我只是不知道如何。

1 个答案:

答案 0 :(得分:2)

不,您不能将u8与变量一起使用。它仅适用于编译时的字符串文字,而不适用于运行时的数据。

您在评论中说您正在阅读其他流程中的数据。在将数据转换为任何有意义的数据之前,您必须知道该数据的确切编码。它已经是UTF-8了吗?还是在KOI8-R? ISO-8859-5?不要猜!

您可以尝试对数据执行已知的hueristics以尝试动态检测编码(并且有可用于此目的的第三方库),但这仍然是一种猜测形式(虽然有点受过教育的猜测)因此受制于可能会产生误导性结果。

如果您无法找到编码,那么您无法安全地将其转换为UTF-8(或其他任何内容)。