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