如何在C ++中将字符的十进制代码转换为Unicode字符串? 例如,我给它整数241,即'ñ'西班牙语字母,我想将它转换为Unicode字符串。
答案 0 :(得分:1)
如果源字符集是ISO 8859-1或8859-15(两者都在代码点0xF1 = 241处具有LATIN SMALL LETTER N WITH TILDE),则转换需要为Unicode字符U +创建正确的编码00F1。
现在,我们需要知道您正在使用哪种Unicode编码方案。如果您使用UTF-8,则需要结果:
\xC3 \xB1
如果您使用UTF-16 BE(大端),则需要:
\x00 \xF1
如果您使用UTF-16 LE(小端),则需要:
\xF1 \x00
如果您使用的是UTF-32,则需要4个字节而不是2个字节。
如果你想要一个字符串,你需要将U + 0000(NULL)编码为下一个字符。
如果你不知道你需要哪种形式,你就会遇到大问题;要使用Unicode,您需要了解不同表单的编码方式。您的图书馆可能会让您免于理解,但最终,您需要至少知道minimum about Unicode。
答案 1 :(得分:0)
如果在运行时确定字符代码,并且您不能使用explained by Jonathan之类的文字,则需要依赖您的工具包。例如,在Qt:
QString codepointToString(QString codepointDecimal) {
int codepoint = codepointDecimal.toInt(); //TODO: check errors
QChar character(codepoint);
return QString(character);
}