Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Duvida Encoding

Galera da uma força ai.

eu uso windows e como editor de texto uso o vscode e meu terminal é o cmder.

bom segui os exemplos e consegui de boa fazer exibir as strings com acento porem, percebi que elas são armazenadas na lista com o erro de encoding isso implica em :

caso eu queira testar se o valor digitado foi ex: débora se realmente foi digitado a palavra débora ele não irá passar no teste pois na variavel nao possui o valor débora e sim 'd\x82bora'.

ou seja para exibir esta perfeito porem para manipular isso é um problema!

alguma solução ou dica?

Meu codigo:

O exemplo que cite está na função deletar_perfil()

# -*- coding: UTF-8 -*-

import os

def cls():
    os.system('cls' if os.name == 'nt' else 'clear')

def listar_perfis(lista):
    print 'Perfis Cadastrados'
    print '---------------------'
    for perfil in lista:
        print perfil

def cadastrar_perfil(lista):
    print 'Digite um nome para o perfil:'
    n_perfil = raw_input()
    lista.append(n_perfil)
    total_usuarios = len(lista)
    cls()
    print 'Nossa rede tem %s usuarios ate o momento!' %(total_usuarios)
    print lista

def deletar_perfil(lista):
    print 'Perfis disponiveis: '
    print lista
    print '-------------------------------'
    print 'Digite o nome do perfil que deseja deletar!'
    n_perfil = raw_input()
    if (n_perfil == 'débora'):
        lista.remove(n_perfil)
        cls()
        print '---------------------------'
        print 'O perfil de %s foi excluido' %(n_perfil)
    else:
        print 'Perfil não encontrado!'



def menu():
    perfis = []
    escolha = ''
    while (escolha != '0'):
        print '-----------------------------------------------------------------'
        print 'Minha NETWORK'
        print '-----------------------------------------------------------------'
        print 'Digite:\n1 para cadastrar perfil\n2 para deletar perfil\n3 para ver perfis cadastrados\n0 para encerrar.'
        escolha = raw_input()

        if (escolha == '1'):
            cls()
            cadastrar_perfil(perfis)
        elif (escolha == '2'):
            cls()
            deletar_perfil(perfis)
        elif (escolha == '3'):
            cls()
            listar_perfis(perfis)
        elif (int(escolha) > 3 ):
            cls()
            print 'Opcao invalida!'
            menu()
    cls()
    print 'Volte Sempre :)'
    exit()

menu()
5 respostas

Opa! Qual versão do Python vc instalou?

Ola Flavio, eu instalei o 2.7, ele funciona normal aceita o encode e talz mas apenas na visualização ou seja se eu tenho na variave uma string com acento e dou PRINT ai ele exibe direito mas se eu exibo direto sem o print(apenas digitando no console o nome da variavel) ele exibe com caracteres maluco outra coisa que notei é se eu faço isso aqui:

print 'Meu texto que contem é com acento'

quando vai sair no console tbm exibe com erro de encoding

solução!

Se for pelo console isso acontece mesmo. Contudo eu vou procurar uma resposta que já dei para outro aluno que ajuda a resolver isso. É preciso alterar vários arquivos do Python, mas não lembro de cabeça quais são. O console do python tem isso porque usa um encoding diferente.

Eu vou dar uma caçada e ver se acho, ou passo um link. Mas no final eu acho que não vale a pena brigar com o console.

Em breve dou um feedback.

Esse problema só não pode acontecer com seus programas fora do terminal. Se acontecer temos que resolver.

Ahhh blz meu medo era influenciar as applicaçoes mas como to aprendendo ainda... entao vou esperar chegar na parte fora do terminal rs pode marcar como soluçao se quiser obrigado!