c++ - 多语言字符串转数字

标签 c++ c macos unicode

我有以下代码:

    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/

相关文章:

c++ - 我写了一个 C++ 代码来去除句子的空格,但是当我尝试打印它时,它不会打印第一个单词

c++ - 具有 NDK 和大量 C++ 依赖项的 Android Studio 2.3.3 项目卡在 `Building symbols`

c++ - VST SDK 2.4 乐器 - processReplace 和 processEvents

c - C语言求第N个质数

xcode - 如何将文件名从 finder 传递到我的 OS X 应用程序

macos - Oh-my-zsh mac os X 坏了

c++ - 我如何遍历 malloc? (开放式简历)

C 文字串联

C - 为什么固定大小的数组比动态分配的数组执行得慢得多?

objective-c - Cocoa:区分输入设备/scrollWheel:作为鼠标滚轮和触控板