小编ᛉᛉᛉ*_*ᛉᛉᛉ的帖子

如何在 C 中正确处理非 ASCII 字符串?

我的想法是用 C 语言编写一个类似 Hangman 的游戏。我希望它能够使用带有元音变音的德语单词(例如:\xc3\xa4, \xc3\xbc, \xc3\xb6)以及希腊单词(完全非 ASCII 字符)。

\n

我的编译器和终端可以很好地处理 Unicode。显示字符串效果很好。

\n

但是我应该如何对这些字符串进行操作呢?对于德语,我也许可以通过在函数中处理这些大小写来处理 6 个大写和小写重音字符。但考虑到希腊语,这似乎是不可能的。

\n

我写了这个测试代码。它输出字符串、字符串的长度(当然是错误的,因为 UTF-8 序列代替了两个字符)以及字符串中各个字符的纯文本和十六进制值。

\n
#include <stdio.h>\n#include <string.h>\n\nint main() {\n    printf("123456789\\n");\n    char aTestString[] = "cheese";\n    printf("%s ist %d Zeichen lang\\n", aTestString, strlen(aTestString));\n        \n    for (int i = 0; i < strlen(aTestString); i++) {\n        printf("( %c )", aTestString[i]);   // char als char\n        printf("[ %02X ]", aTestString[i]); // char in hexadezimal\n    }\n\n    printf("\\n123456789\\n");\n    char aTestString2[] = "K\xc3\xa4se";\n    printf("%s has %d characters\\n", aTestString2, …
Run Code Online (Sandbox Code Playgroud)

c string unicode parsing

5
推荐指数
1
解决办法
197
查看次数

标签 统计

c ×1

parsing ×1

string ×1

unicode ×1