以下程序在 HPUX 上返回不正确的值 {-1,0,-1},而如果我在 Linux 上运行相同的程序,它对于区域设置“de_DE.iso885915@euro”正常工作。HPUX wcwidth、iswprint 和 wcswidth 有什么问题吗?
int main ()
{
wchar_t str[2];
wchar_t ch = 8364; /* Euro sign */
str[0] = ch;
str[1] = '\0';
/* Locale set to de_DE.iso885915@euro before running this program */
setlocale(LC_ALL, "");
printf ("%d\n", wcwidth(ch));
printf ("%d\n", iswprint(ch));
printf ("%d\n", wcswidth(str, 2));
return 0;
}