0
以下程序在HPUX上返回不正確的值{-1,0,-1},而如果我在Linux上運行相同的程序,它對於區域設置「de_DE.iso885915 @歐元」。 HPUX wcwidth,iswprint和wcswidth是否有問題?HPUX上的wcwidth問題:HPUX上的國際化和本地化問題
int main()
{
wchar_t str[2];
wchar_t ch = 8364; /* Euro sign */
str[0] = ch;
str[1] = '\0';
/* Locale set to [email protected] 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;
}
只有在de_DE.iso885915和ko_kr.iso885915上纔會遇到問題,它適用於UTF-8和EUC等其他語言環境。事實上,[email protected]也可以正常工作。奇怪的問題是,現在惠普有補丁嗎? –
可能不是;這不是一個錯誤,而是一個允許的行爲,所以最糟糕的是它只是一個「實施質量」問題。無論如何,這是2012年。您不應該使用非UTF-8語言環境。如果您有遺留數據,請用'iconv'處理。 –
iconv?是否有可能使用iconv獲得字符的顯示寬度,我只是將其用於轉換目的?有沒有其他方法可以讓我們想到寬字符的顯示寬度而不是wcwidth? –