以下程序在 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; 
}