簡體   English   中英

xcode std :: wcout with wchar_t或std :: wstring!

[英]xcode std::wcout with wchar_t or std::wstring!

我試圖在xcode中將wstring / wchar_t打印到控制台但不幸的是它只適用於基本字符(我認為是ascii)字符,其他所有內容都以數字顯示,例如以下內容:

std::cout << "äöüu"<< std::endl;
std::wcout << L"äöüu" << std::endl;

雖然cout版本按預期打印“äöüu”但是在使用wchar_t時會得到以下內容:

\\ 344 \\ 366 \\ 374U

關於如何解決這個問題的任何想法? 我使用xcode 3.2.2 64位和gcc 4.2,文件編碼設置為Unicode(UTF-8)

謝謝!

我有一個單純的問題,但有wostream / wofstream。 谷歌搜索它,這是anser:

tc_ofstream ofs;

if (sizeof(TCHAR) == sizeof(wchar_t))
{
    //codecvt_utf16<TCHAR> utf16; cannot make use of non-dynamic value
    locale   loc ( locale::classic() ,new codecvt_utf16<TCHAR> );
    ofs.imbue( loc );
    ofs.open( _T(".\\test.txt") ,tc_ios::binary );

    TCHAR BOM = 0xFEFF;    ofs << BOM;
    ofs << _T("UNICODE") << endl;
}
else
{
    ofs.open( _T(".\\test.txt") ,tc_ios::binary );
    ofs << _T("NON-UNICODE") << endl;
}

如果你使用wxWidgets,wxString會使用wxConvCurrent自動處理這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM