Manejo de cadenas UTF-8 en C en Windows
La codificación de cadenas como UTF-8 se usa ampliamente para aplicaciones multiplataforma. Sin embargo, enviar cadenas UTF-8 a std::cout en Windows presenta desafíos únicos.
El comportamiento predeterminado en Windows es que std::cout espere cadenas en formatos no Unicode. Cuando se presentan cadenas UTF-8, muestra caracteres corruptos.
Para solucionar este problema, hay dos pasos principales:
Aquí hay un fragmento de código revisado que incorpora estas soluciones:
#include
#include
#include
#include
int main() {
// Set console code page to UTF-8
SetConsoleOutputCP(CP_UTF8);
// Enable buffering to prevent byte-by-byte transmission
setvbuf(stdout, nullptr, _IOFBF, 1000);
// Output UTF-8 string
std::string test = u8"Greek: αβγδ; German: Übergrößenträger";
std::cout Además de estos pasos, tenga en cuenta que es posible que las fuentes rasterizadas en la consola de Windows no muestren correctamente caracteres Unicode que no sean ASCII. Para permitir una representación adecuada, se recomienda cambiar a una fuente TrueType, que ahora es la predeterminada en Windows 10 y versiones posteriores.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3