¿Cómo imprimo these UTF-8 characters en C++?Cómo imprimo caracteres UTF-8 C++?
Respuesta
Bueno, usted sabe que es posible porque su navegador podría representarlos. En Windows, puede utilizar el applet charmap.exe para descubrir sus puntos de código Unicode:
- ♠ = 0x2660
- ♣ = 0x2663
- ♥ = 0x2665
- ♦ = 0x2666
El desafío es obtener un programa C/C++ para mostrarlos. Eso no será posible en ningún tipo de forma específica que no sea de plataforma a menos que use una biblioteca de UI multiplataforma como Qt o wxWidgets. En un programa de interfaz gráfica de usuario de Windows puede hacerlo de esta manera en el controlador de mensajes 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;
Simplemente envíe los bytes apropiados a su terminal, y asegúrese de que el terminal esté usando una codificación UTF-8 para mostrar sus datos. C++ en sí mismo es relativamente UTF8-agnóstico. Es solo una variedad de uint_8's.
(A menos que desee utilizar algún tipo de operaciones orientados a caracteres en las cadenas con UTF-8. Luego hay que utilizar las funciones de UTF-8 de manipulación, en lugar de los índices de matriz y las normales rutinas de manipulación de cadenas.)
por ejemplo sprintf("%c%c%c\n", 0xE2, 0x99, 0xA0);
En C++: std :: wcout < < L "WSTR [" < < WSTR < < L ']' < < std :: endl;
En C: printf ("% ls \ n \ n", wstr);
wchar_t no garantiza que sea UTF-16. Ciertamente no será UTF-8. – jamesdlin
- 1. de caracteres UTF8 decodificación en C Objetivo
- 2. C# XmlWriter y UTF8 no válido caracteres
- 3. C# UTF8 Lectura/Salida
- 4. ¿Hay bytes delimitadores para caracteres UTF8?
- 5. Hibernate/JPA caracteres import.sql utf8 dañados
- 6. Procesamiento UTF8 en C
- 7. Convirtiendo el problema ANSI en UTF8 C#
- 8. ¿Cómo imprimo un bit?
- 9. Cómo convertir UTF8 a Unicode
- 10. Conversión de caracteres UTF8 escapados a su forma original
- 11. Cómo convertir caracteres UTF8 a entidades de caracteres numéricos en PHP
- 12. MySQL - Convertir caracteres latin1 en una mesa de UTF8 en UTF8
- 13. Regex para eliminar caracteres no alfanuméricos de cadenas UTF8
- 14. Error con los caracteres utf8 y htmlspecialchars en yii
- 15. ¿Cómo GetBytes() en C# con codificación UTF8 con BOM?
- 16. Almacenar una cadena como UTF8 en C#
- 17. ¿Cómo imprimo los elementos de un vector C++ en GDB?
- 18. Convierte caracteres utf8 a iso-88591 y vuelve a PHP
- 19. Smarty: los caracteres especiales se cambian no deseados-utf8
- 20. Algunos caracteres utf8 permitidos en la fuente python, algunos no
- 21. codificación Java UTF8
- 22. UTF8 y Javascript
- 23. ¿Convertir cadena latin1 a utf8?
- 24. ¿Es posible convertir caracteres específicos de idioma a caracteres latinos en UTF8
- 25. Cómo truncar una cadena UTF8 en PHP?
- 26. java: cómo convertir un archivo a utf8
- 27. Convierte latin1 a UTF8
- 28. C++ cómo escribir/leer ofstream en Unicode/UTF8
- 29. ios Codificación UTF8 de nsstring
- 30. ¿Cómo imprimo un campo desde un archivo separado por tubería?
depende de qué fuente se utiliza, ya sea UNIX o Windows, si usted está escribiendo una consola o una API de interfaz gráfica de usuario. –
preferiblemente consola multiplataforma – y2k
Estos caracteres no son parte del conjunto de caracteres ASCII, lo que significa que debe seleccionar una fuente que los contenga antes de poder imprimirlos. No hay una forma de plataforma cruzada para seleccionar fuentes para aplicaciones de consola. No creo que puedas hacerlo en Windows. –