バックグラウンド
私はいくつかの組み込みプロジェクトに取り組んでおり、非標準の文字とフォントを処理しようとしています。
600 以上の要素配列に生のビットマップ フォントがあります。この配列の 5 要素ごとに 1 文字が含まれます。最初の 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 でエンコードされています。
編集
エミリエンによって提案された wchar.h は私にとってはうまくいくように見えますが、残念ながら私のコンパイラには wchar.h がありません。
たぶん、プリプロセッサのトリックですか?次のような筋金入りのテキスト準備は本当に避けたいです。
print("abcde");
print_diactric(123); // 123 code used for ę
print("fgh");
// to get "abcdeęf" "word"