为什么localeconv()在Linux上用意大利语(it)为数千sep返回空字符串(“it”)?

为什么localeconv()在Linux上用意大利语(it)为数千sep返回空字符串(“it”)?,linux,locale,Linux,Locale,为什么localeconv()在Linux上用意大利语(it)为数千个sep返回空字符串(“”)?它在MacOSX上运行良好 #包括 #包括 int main(){ 结构lconv*lc; printf(“区域设置%s\n”,setlocale(LC\u NUMERIC,“it\u it”); lc=localeconv(); printf(“千年九月:%s\n”,lc->千年九月); printf(“小数点=%s\n”,lc->小数点); printf(“区域设置%s\n”,setlocale

为什么localeconv()在Linux上用意大利语(it)为数千个sep返回空字符串(“”)?它在MacOSX上运行良好

#包括
#包括
int main(){
结构lconv*lc;
printf(“区域设置%s\n”,setlocale(LC\u NUMERIC,“it\u it”);
lc=localeconv();
printf(“千年九月:%s\n”,lc->千年九月);
printf(“小数点=%s\n”,lc->小数点);
printf(“区域设置%s\n”,setlocale(LC_NUMERIC,“en_US”);
lc=localeconv();
printf(“千年九月:%s\n”,lc->千年九月);
printf(“小数点=%s\n”,lc->小数点);
返回0;
}
Mac OS X 10.9.1:

locale it_IT
Thousands Sep: . 
Decimal Point = ,
locale en_US
Thousands Sep: ,
Decimal Point = .
Ubuntu 12.10:

locale it_IT
Thousands Sep: 
Decimal Point = ,
locale en_US
Thousands Sep: ,
Decimal Point = .
CentOS 6.5:

locale it_IT
Thousands Sep: 
Decimal Point = ,
locale en_US
Thousands Sep: ,
Decimal Point = .

想知道在Ubuntu下,
1000sep
是否被归入另一个类别,比如
LC\u MONETARY
LC\u ALL
LC\u NUMERIC
是否存在相同的不一致性?我看到LC_ALL和LC_NUMERIC也有同样的问题。看起来这可能是一场灾难。