我試圖從(框圖範圍:2500-257F)顯示Unicode字符。它應該是標準的utf8(Unicode標準,版本6.2)。我根本無法做到。如何在C(Linux utf8終端)中打印「方塊抽屜」Unicode字符?
我首先嚐試使用良好的舊ASCII字符,但Linux終端顯示在utf8中,沒有顯示轉換(符號?)。
誰能回答這些問題:
- 如何在C變量(
style wchar_t
)Unicode字符編碼? - 如何對Unicode使用轉義序列,如0x或0(十六進制,十進制)?
我知道U +但它似乎沒有工作。
setlocale(LC_ALL,"");
short a = 0x2500, b = 0x2501;
wchar_t ac = a;
wchar_t bc = b;
wprintf(L"%c%c\n", ac, bc);
exit(0);
我知道結果與所使用的字體,但我用的是UTF8字體(http://www.unicode.org/charts/fonts.html)和代碼從2500到257F必須顯示...其實他們不是。
感謝您的幫助提前...
你正在使用什麼樣的終端?你確定它使用了一個包含所有這些字形的字體嗎?另外,你知道unicode <> utf-8轉換,對嗎?即例如U + 2500是0xe29480,例如U + 257F是0xe295bf? (對不起,如果我聽起來很刺耳,但必須確保那部分是好的。) –
你的問題似乎意味着你不明白unicode和unicode編碼之間的區別。您的終端可能使用utf-8編碼,因此您必須在發送到終端之前將您的unicode代碼點編碼爲utf-8編碼。這意味着還要設置UTF-8語言環境。例如LANG =「en_US.utf8」 – Keith
現在我想起了它 - 您的終端可能不會以utf-8模式運行。你能向我們展示'stty'的輸出嗎? –