1
resposta

[Dúvida] Error função <locale.h> - setlocale(); C - Saída Terminal

Bom dia pessoal!

Estou com error ao tentar incluir e usar a função para formatar a saída no terminal para aceitar caracteres UTF-8. Utilizei todos os parametros da função junto a biblioteca, mas ainda não obtive a formatação correta.

Utilizo SO Windows - Compilador GCC Compiller - IDE CodeBlocks e a variavel de ambiente já esta criada.

Segue abaixo os parâmetros utilizados na função:


#include <stdio.h>
#include <locale.h>

int main(){
    setlocale(LCC_ALL, "");
    
    //setlocale("LCC_ALL, "pt_BR"); - ja testado
    //setlocale("LCC_ALL, "Portuguese"); - ja testado 
    
    printf("=============================\n");
    printf(" Bem-vindo ao jogo de Adivinhação \n");
    printf("=============================\n");
    
    return 0;
}

Obrigado...

1 resposta

Olá Yuri! Tudo bem?

No Windows, o suporte para UTF-8 pode ser um pouco complicado, mas vamos tentar algumas abordagens que podem ajudar.

  1. Verifique o Código da Página do Console: No Windows, o console pode não estar configurado para usar UTF-8 por padrão. Você pode tentar alterar o código da página do console para UTF-8 executando o seguinte comando no terminal antes de executar seu programa:

    chcp 65001
    

    Isso altera o código da página para UTF-8.

  2. Modificar o setlocale: No código que você forneceu, há um pequeno erro de sintaxe na chamada da função setlocale. Certifique-se de que está usando LC_ALL corretamente. Aqui está a correção:

    setlocale(LC_ALL, "Portuguese_Brazil.1252");
    

    Ou, se você estiver tentando usar UTF-8:

    setlocale(LC_ALL, ".UTF-8");
    

    Note que o suporte para UTF-8 pode ser limitado dependendo da configuração do sistema.

  3. Uso de IDE: Algumas IDEs podem não suportar bem a exibição de caracteres UTF-8 no console interno. Tente executar seu programa diretamente no terminal do Windows após compilar, para ver se o problema persiste.

Essas são algumas sugestões que podem ajudar a resolver o problema. Espero que uma dessas soluções funcione para você.

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.