2013-05-30 39 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