我有以下代码:
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 是否不支持多语言号码?
最佳答案
wchar_t
不一定是 unicode 数字。它取决于区域设置,因此也许首先考虑设置您的区域设置。只是猜测
关于c++ - 多语言字符串转数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16833146/