c - Why Unicode characters are not displayed properly in terminal with GCC? -


i've written small c program:

#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); } 

why doesn't print character ?

instead prints gibberish. unicodetest

i've checked:

  • tried compiling without setlocale, same result
  • the terminal can print character, can copy-paste terminal text-editor, it's gnome-terminal on ubuntu
  • gcc version 4.8.2

wprintf version of printf takes wide string format string, otherwise behaves same: %c still treated char, not wchar_t. instead need use %lc format wide character. , since strings ascii may use printf. example:

int main() {     printf("%s\n", setlocale(lc_all, "c.utf-8"));     wchar_t chr = l'┐';     printf("%lc\n", chr); } 

Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -