背景
我正在处理一些嵌入式项目,并且正在尝试处理非标准字符和字体。
我在 600+ 元素数组中有原始位图字体。该数组的每 5 个元素包含一个字符。我在前 5 个元素中有 32 个字符(空格),在 6-10 个元素中有 33 个字符(!)等。
我必须处理国家变音符号(例如“ę”)。我在 122 个字符之后找到了它们。现在我试图重新映射字符,以便在我输入print("Test ę");
C 源代码时打印正确的字符。
问题
所以我想在源代码中这样输入:
print("Test diactric ę");
// warning: (228) illegal character (0xC4)
当我尝试这个时(我试图查看 C 将为“ę”输入什么代码):
int a = 'ę';
// error: (226) char const too long
如何解决这个问题?
我使用 XC8 编译器(基于 gcc?)。
我在编译器手册中发现它使用 7 位字符编码,但也许有什么办法?我的源文件以 UTF-8 编码。
编辑
看起来 Emilien 建议的 wchar.h 可以为我工作,但不幸的是我的编译器没有 wchar.h。
也许一些预处理器技巧?我真的很想避免这样的硬核文本准备:
print("abcde");
print_diactric(123); // 123 code used for ę
print("fgh");
// to get "abcdeęf" "word"