Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Corregir letras raras (https://www.clubdelphi.com/foros/showthread.php?t=94554)

REHome 29-03-2020 12:46:04

Corregir letras raras
 
Hola:

Al escribir tildes o otro caracter, te lo muestra raro a la hora de ejecutar la aplicación con Visual Studio Community 2019 con C++ Win32.



¿Se puede corregir?

Saludos.

Ñuño Martínez 29-03-2020 15:33:18

Eso es debido a la codificación de caracteres. Depende de cómo lo tengas tú, pero siendo Windows en español lo más seguro es que se espera que uses ISO-8859-1 (si fuera Linux o UNIX entonces deberías usar UTF-8 ó UTF-16).

Sé que hay una función que convierte cualquier cadena a la codificación esperada por la consola de Windows, pero ahora no la encuentro, y mira que he buscado, pero no hay manera. :(

REHome 30-03-2020 14:27:06

Lo he logrado.

Muchas gracias.

Muestro el ejempo por si alguien lo necesita o por si alguien le pica la curiosidad, aunque pasen siglos.... ;)

Código:

    #include <iostream>
    #include <windows.h> // Para mostrar texto en el título de la ventana.
   
    using namespace std;
 //  using std::cout;
 //  using std::cin;
   
    int main(void)
    {
            // Mostrar caracteres correctamente en pantalla.
            SetConsoleOutputCP(65001);
            wchar_t titulo[128];
            MultiByteToWideChar(CP_UTF8, 0, "Título de la ventana. Win32 C++ 2019.", -1, titulo, 128);
            SetConsoleTitle(titulo);
   
            // Tamaño de la pantalla. Se cambia en los dos últimos dígitos.
            SMALL_RECT r = { 0, 0, 49, 9 };
            SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE), TRUE, &r);
   
            // Mostrar textos en pantalla.
            cout << "Terminarías. Conocerías. Título. Analógico. \n";
            cout << "Muchas gracias mi muy distinguido amigo.";
   
            // Esperando pulsar Enter para salir.
            cin.get();
            return 0;
    }

Con .net estas cosas no ocurre. En fin.

Gracias por todo.

ElKurgan 28-04-2020 10:29:12

Gracias por compartir la solución

Un saludo


La franja horaria es GMT +2. Ahora son las 09:42:21.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi