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 は 1234 ではなく 0 です。ここで何が問題なのですか? Mac OS X の wcstoll では、多言語番号はサポートされていませんか?

4

1 に答える 1

0

wchar_t必ずしも Unicode 番号ではありません。ロケールに依存するため、最初にロケールを設定することを検討してください。ただの推測

于 2013-05-30T10:01:44.903 に答える