Come si stampa these UTF-8 characters in C++?Come stampo i caratteri UTF-8 C++?
risposta
Bene, sai che è possibile perché il tuo browser potrebbe renderli. Su Windows è possibile utilizzare l'applet charmap.exe di scoprire i loro punti di codice Unicode:
- ♠ = 0x2660
- ♣ = 0x2663
- ♥ = 0x2665
- ♦ = 0x2666
La sfida è ottenere un programma C/C++ per visualizzarli. Ciò non sarà possibile in nessun tipo di modalità non specifica della piattaforma, a meno che non si utilizzi una libreria dell'interfaccia utente multipiattaforma come Qt o wxWidgets. In un programma GUI di Windows si può fare in questo modo nel gestore di messaggi 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;
Invia semplicemente i byte appropriati al tuo terminale e assicurati che il terminale utilizzi la codifica UTF-8 per visualizzare i tuoi dati. Lo stesso C++ è relativamente agnostico rispetto a UTF8. È solo una serie di uint_8.
(A meno che non si desidera utilizzare una sorta di operazioni di carattere orientato sulle stringhe con UTF-8. Quindi è necessario utilizzare le funzioni UTF-8 manipolazione, invece di indici di matrice e le normali routine di manipolazione delle stringhe.)
es sprintf("%c%c%c\n", 0xE2, 0x99, 0xA0);
In C++: std :: wcout < < L "WSTR [" < < WSTR < < L ']' < < std :: endl;
In C: printf ("% ls \ n \ n", wstr);
wchar_t non è garantito per essere UTF-16. Non sarà certamente UTF-8. – jamesdlin
- 1. PHP preg_split utf8 caratteri
- 2. C# UTF8 Lettura/emissione
- 3. Esistono dei byte delimitatore per i caratteri UTF8?
- 4. MySQL - Convertire i caratteri latin1 su un tavolo UTF8 in UTF8
- 5. Libreria C per convertire i punti codice unicode in UTF8?
- 6. Hibernate/JPA import.sql utf8 caratteri corrotti
- 7. primefaces fileupload filtro con filtro utf8 caratteri
- 8. UTF8 in elaborazione in C
- 9. Come impostare il set di caratteri mongodb su utf8?
- 10. Come conservare i caratteri come in MySQL
- 11. Conversione dei caratteri UTF8 fuoriusciti nella loro forma originale
- 12. Come convertire i caratteri UTF8 in entità di carattere numerico in PHP
- 13. Memorizzazione di una stringa come UTF8 in C#
- 14. Errore con utf8 caratteri e htmlspecialchars in yii
- 15. Caratteri non alfanumerici di striscia dall'inglese UTF8 + stringa inglese
- 16. Rimuovi caratteri utf8 non stampabili eccetto controlchars da String
- 17. Smarty: caratteri speciali vengono cambiati non desiderati- utf8
- 18. L'aggiunta di caratteri Unicode/UTF8 a un ncurses visualizzare in C
- 19. Regex per rimuovere caratteri non alfanumerici da stringhe UTF8
- 20. NancyFx: impostare set di caratteri di default utf8
- 21. Codifica UTF8 Java
- 22. Converti latin1 in UTF8
- 23. Come troncare una stringa UTF8 in PHP?
- 24. Conversione del problema da ANSI a UTF8 C#
- 25. opendir e readdir restituisce utf8
- 26. È possibile che php rilevi i caratteri utf8 codificati a 4 byte?
- 27. Java + Mysql UTF8 Problema
- 28. mb_strtolower e UTF8 stringhe
- 29. Combina i miei caratteri unicode in C#?
- 30. Converti utf8 in latin1 in PHP. Tutti i caratteri sopra 255 convertono in riferimenti di carattere
dipende da quale tipo di carattere utilizzato, che si tratti di UNIX o di Windows, se si sta scrivendo una console o un api GUI. –
preferibilmente console multipiattaforma – y2k
Questi caratteri non fanno parte del set di caratteri ASCII, il che significa che è necessario selezionare un font che li contiene prima di poterli stampare. Non esiste un modo multipiattaforma per selezionare i caratteri per le app della console. Non penso che tu possa farlo affatto su Windows. –