5
respostas

A saída das palavras que possuem caracteres especiais, não sai corretamente

O saída das palavras que possuem caracteres especiais, não sai corretamente. Exemplo: melância -> melância; maça -> maça

5 respostas

Olá Guilherme! Você está usando Pycharm mesmo ou algum outro IDE? Pode ser configuração do encoding da própria IDE.

Python 3 por padrão já trabalha em UTF-8 e deveria reconhecer caracteres especiais.

Faz o seguinte, caso esteja utilizando Pycharm, vai em File>Settings>Editor>File Encodings e verifica o Global Encoding se está configurado como UTF-8.

Caso esteja utilizando uma outra versão do Python, na documentação Python eles descrevem como trocar o encoding do código adicionando na primeira e segunda linha do programa:

#!/usr/bin/python
# -*- coding: <encoding name> -*-

Assim você só precisa trocar encoding name por UTF-8:

#!/usr/bin/python
# -*- coding: utf-8 -*-

Isso deve resolver. Comenta ai caso não tenha!

Fala Guilherme, tudo bem?

Olhei aqui e está com a UTF-8 configurada. Sim, estou usando o PyCharm e o Python 3.9.1

O mesmo problema aqui, coloquei UTF-8 em File Encodings e continua o problema com caracteres especiais.

Que estranho!

Tenta rodar por fora do Pycharm, configura o encoding pra utf-8 como sugeri e ve se os caracteres são impressos corretamente, caso sim então deve ser ainda no Pycharm.

Outra coisa, na File Encodings do Pycharm tem o Global Encoding e o Project Encoding.

O primeiro, Global, deve estar configurado UTF-8 no seu, o segundo deve estar System Default, ou windows-1252 caso utilize Windows como eu, tenta configurar ambos pra UTF-8 e aplicar e ver se continua.

Eu fiz uns testes por fora do Pycharm usando exclusivamente notepad e o cmd do windows e o único jeito que consegui replicar seu problema foi configurando com o encoding no cabeçalho, pra latin-1 ou iso-8859-15 mas se eu configuro de volta pra utf-8 ele volta ao normal.

Pessoal, comigo aconteceu a mesma coisa, mas corrigi com o seguinte código :

arquivo = open("palavras.txt", "r", encoding="UTF-8")