如何在C++中打印these UTF-8 characters?如何打印UTF-8字符C++?
5
A
回答
0
那麼,你知道這是可能的,因爲你的瀏覽器可以呈現它們。在Windows中可以使用CHARMAP.EXE小程序來發現它們的Unicode代碼點:
- ♠= 0x2660
- ♣= 0x2663
- ♥= 0x2665
- ♦= 0x2666
面臨的挑戰是讓C/C++程序顯示它們。除非您使用像Qt或wxWidgets這樣的跨平臺UI庫,否則這種方式不可能以任何非平臺特定的方式進行。在Windows GUI程序,你可以做這樣的WM_PAINT消息處理程序:
case WM_PAINT: {
hdc = BeginPaint(hWnd, &ps);
HFONT hFont = CreateFont(16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, L"Arial Unicode MS");
HGDIOBJ oldFont = SelectObject(hdc, hFont);
RECT rc = {0, 0, 666, 16};
DrawTextEx(hdc, L"\x2660\x2663\x2665\x2666", -1, &rc, DT_LEFT, 0);
SelectObject(hdc, oldFont);
DeleteObject(hFont);
EndPaint(hWnd, &ps);
}
break;
3
只需輸出適當的字節到您的終端,確保終端使用UTF-8編碼來顯示您的數據。 C++本身相對UTF8不可知。這只是一個uint_8的數組。
(除非你想使用某種面向字符的操作上使用UTF-8字符串。然後,你需要使用UTF-8的操控功能,而不是數組索引和普通的字符串處理例程。)
例如sprintf("%c%c%c\n", 0xE2, 0x99, 0xA0);
0
在C++: 的std :: wcout < < L 「WSTR [」 < < WSTR < < L ']' < <的std :: ENDL;
In C: printf(「%ls \ n \ n」,wstr);
+3
wchar_t不保證是UTF-16。這當然不會是UTF-8。 – jamesdlin 2010-01-23 06:52:47
相關問題
- 1. 使用C++將UTF8字符打印到Linux控制檯
- 2. 如何在C(Linux utf8終端)中打印「方塊抽屜」Unicode字符?
- 3. 如何打印字符串C++ MFC
- 4. C++如何向後打印字符串?
- 5. 如何打印非ASCII字符用C
- 6. 如何在c#中打印字符串到打印機?
- 7. c打印太多字符
- 8. C#打印字符串
- 9. 打印C++ unicode字符
- 10. 如何在C++中的字符數組中打印字符
- 11. 打印一個unicode拉丁字母(utf8)
- 12. 從字符串中刪除不可打印的utf8字符(控制字除外)
- 13. 在ANSI C中打印字符C
- 14. UTF8字符在目標C
- 15. 在Drupals中沒有打印出UTF8字符HTML
- 16. 使用'使用utf8;'給我 '在打印寬字符'
- 17. 在glib中打印utf8
- 18. 打印字符
- 19. 打印字符
- 20. 如何打印字體的字符集?
- 21. 字邊界後如何打印字符
- 22. 如何打印字典字符串
- 23. 如何打印「|」符號在C++
- 24. C通用打印數組函數 - 打印字符串數組
- 25. 如何在另一個打印時打印字符串?
- 26. 如何用打印機打印字符串?
- 27. 斑馬打印機:如何打印UTF-8特殊字符
- 28. 如何打印總是打印一列的字符
- 29. C打印一個字符串數組
- 30. C - wchar_t打印不需要的字符
取決於你用什麼字體,無論是UNIX或Windows,無論你是寫一個控制檯或GUI API。 – 2010-01-23 05:29:34
最好是跨平臺控制檯 – y2k 2010-01-23 06:11:48
這些字符不是ASCII字符集的一部分,這意味着在打印它們之前必須選擇一個包含它們的字體。沒有跨平臺的方式來選擇控制檯應用程序的字體。我認爲你完全可以在Windows上做到這一點。 – 2010-01-23 08:34:28