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

Popular posts from this blog

Perl - how to grep a block of text from a file -

delphi - How to remove all the grips on a coolbar if I have several coolbands? -

javascript - Animating array of divs; only the final element is modified -