如何创建,分配和打印Unicode字符

时间:2012-03-06 19:17:50

标签: c unicode variable-assignment

任何人都可以向我解释如何创建变量(在c中),为该变量分配Unicode字符,然后打印该变量。我可能在这里遗漏了一些东西,但我无法解决这个问题。另外,有什么办法可以在变量名中包含变量吗?

int ttt x; x=1; tttx==ttt1;

我知道那段代码很糟糕,但是我应该怎么做,因为这似乎不是解决问题的方法?

1 个答案:

答案 0 :(得分:1)

首先回答第二个问题:不,你无法在另一个变量的名称中包含变量。如果您需要从名称到值的灵活映射,哈希映射将很有效。如果您可以切换到C ++,则可以使用std::unordered_map<>。如果你需要坚持使用C,你应该找到一个实现哈希映射并与之链接的库。在Google上很容易找到很多例子,还有几个与此相关的SO(Stackoverflow)问题。

至于主要问题:如果您知道要打印的字符的Unicode代码点,最好将其分配给int32_t,然后将其转换为所需的编码。

Unicode有各种编码,最广泛使用的是UTF-8。如果这是您想要的,则从普通int32_t到UTF-8 char序列的转换与从UCS-4到UTF-8的转换相同。有很多库可以为这种转换提供功能。有关快速概述,请参阅here