進出口工作在一些嵌入式項目,我試着去處理非標字符和字體。
我有600 +元素數組中的原始位圖字體。該數組的每5個元素都包含一個字符。我在前5個元素中有字符32(空格),在6-10個元素中有33個字符(!)等。
我必須處理國家變音字符(例如「è」)。我找到他們後122個字符。現在我試圖重新映射字符,以便在C源代碼中輸入print("Test ę");
時獲得正確的字符。
問題
所以我想在源這樣鍵入:
print("Test diactric ę");
// warning: (228) illegal character (0xC4)
當我嘗試這個(我想看看代碼C將把爲「E」):
int a = 'ę';
// error: (226) char const too long
如何解決此問題?
即時通訊使用XC8編譯器(基於gcc的?)。
我在編譯器手冊中發現,它使用7位字符編碼,但也許有一些方法?我的源文件使用UTF-8編碼。
編輯
貌似wchar.h通過Emilien建議能爲我工作,但遺憾的是我沒有編譯wchar.h。
也許一些預處理技巧?我真的想避免鐵桿文本編寫這樣的:
print("abcde");
print_diactric(123); // 123 code used for ę
print("fgh");
// to get "abcdeęf" "word"
甲'char'只是一個小'1字節的大小int';它只能保存256個不同的值(0〜255,-128〜+127等)。除了英文文本以外,您還需要某種多字節字符/字符串(例如Unicode)。 –
@NicolasMiari說'它只是一個小的'int'「是不正確的,因爲'int'是有符號的,'char'的符號更復雜。它可以是。 – unwind
你有什麼理由試圖重塑這個特殊的輪子? –