c - Why does wcwidth return -1 with a sign that I can print on the terminal? -
why here wcwidth
return "-1" (not printable wide character) width "Ԥ" (0x0524)?
#include <stdio.h> #include <wchar.h> #include <locale.h> int wcwidth(wchar_t wc); int main() { setlocale(lc_ctype, ""); wchar_t wc1 = l'合'; // 0x5408 int width1 = wcwidth(wc1); printf("%lc - print width: %i\n", wc1, width1); wchar_t wc2 = l'Ԥ'; // 0x0524 int width2 = wcwidth(wc2); printf("%lc - print width: %i\n", wc2, width2); return 0; } output: 合 - print width: 2 Ԥ - print width: -1
most u+0524 not valid character when libc character database created. added in unicode 5.2. font may include character already, wcwidth
not @ font used.
Comments
Post a Comment