2013-05-30 36 views
0

我有以下代码:多语言字符串编号

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上的wcstoll不支持多种语言的数字吗?

+0

“在除”C“语言环境以外,可能会接受其他特定于语言环境的主题序列形式**。不需要接受梵文数字,如果Mac上的C库完全可以使用,则需要设置正确的语言环境。 –

回答

0

wchar_t并不是必须的unicode数字。它依赖于语言环境,所以也许先看看设置你的语言环境。只是猜测

+0

在Mac OS X的初始化中,我打电话给setlocale(LC_TYPE,“”)。我还需要做什么? – doptimusprime

+0

你可以尝试一个unicode编码为devangari。也许'hi_IN.UTF-8'。只是一个猜测。我认为'locale -a'列出了系统上所有可用的语言环境 – Sodved