3
我寫了一個小的C程序: 爲什麼在使用GCC的終端中Unicode字符無法正確顯示?
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main() {
wprintf(L"%s\n", setlocale(LC_ALL, "C.UTF-8"));
wchar_t chr = L'┐';
wprintf(L"%c\n", chr);
}
爲什麼沒有這種打印字符┐
?
而是打印亂碼。
我檢查:
- 沒有嘗試過的setlocale編譯,相同的結果
- 終端本身可打印字符,我可以將其複製並粘貼到從文本編輯器終端,它的Gnome在Ubuntu
- GCC版本終端是4.8.2
除了下面有關正確的'printf'格式說明符的答案,根據您的輸出看來是正確的答案,您還應該確保您的源文件使用UTF-8編碼而不是像ISO-8859-15那樣。這種事情是爲什麼使用'L'\ u2510''而不是'L'┐''更好。 –
使用正確的格式說明符,語言環境確實有所作爲,沒有它們,這些框字符就會回落到它們的ASCII等效字符,例如, '+','-'和'|'。 – Samik