【发布时间】:2013-05-30 09:58:44
【问题描述】:
我有以下代码:
const wchar_t * hstr = L"\x0967\x0968\x0969\x096a"; //1234 in Devnagari script.
unsigned long long u1;
long long n1;
n1 = wcstoll (hstr, NULL, 10); // _wcstoi64 on Windows
u1 = wcstoull (hstr, NULL, 10); // _wcstoui64 on Windows
LOG(L"String: \"%ls\" is %lld as long 64"), hstr, n1);
LOG(L"String: \"%ls\" is %llu as long 64"), hstr, u1);
在 Windows 上的日志上,它工作正常并且数字被转换。
在 Mac OS X 上,n1 和 u1 是 0 而不是 1234。这里有什么问题? Mac OS X 上的 wctoll 是否不支持多语言号码?
【问题讨论】:
-
“在“C”语言环境之外,其他特定于语言环境的主题序列形式可能被接受。”不需要接受梵文数字,如果你的 Mac 上的 C 库完全接受,你需要设置正确的语言环境。