Problema con la codificación utf-8

Iniciado por Avispon99, 3 Marzo 2018, 06:05 AM

0 Miembros y 1 Visitante están viendo este tema.

Avispon99

Hola,

Sucede que desde que llevo usando Python me he acostumbrado simplemente a evitar usar caracteres especiales como la letra 'ñ' por ejemplo por que cuando pongo la codificación #-*- coding:utf-8 -*- , simplemente no me sirve para nada.. al usar esa codificación lo único que hace es convertirme los caracteres especiales en mamarrachos egipcios ilegibles..

Ya llevo rato con ese problema y me gustaria saber si a alguien mas le ocurre y sabe como se arregla por que aburre tener que vivir huyéndole a los caracteres especiales...

Y sobretodo lo que mas me tiene PODRIDO es tener que vivir remplazando la palabra 'Años' por la palabra 'Anos' y que todos se rian de mi codigo por eso... :'v

¿Alguien sabe como solucionarlo?


Eleкtro

#1
Es que esa no es la codificación que debes utilizar. Si en tu script predomina el uso de caracteres del set de caracteres LATIN-1 (o código de páginas Windows-1252) entonces deberías declarar esa codificación, tal que así:

Código (python) [Seleccionar]
# -*- coding: Windows-1252 -*-

string = 'ñÑ çÇ ¿ ºª áéíóú àèìòù äëïöü'
print string


Si estuvieras trabajando con UTF-8, entonces simplemente puedes añadir el modificador "u" de Unicode delante del string para imprimir los caracteres correctamente:

Código (python) [Seleccionar]
# -*- coding: UTF-8 -*-

string = u'ñÑ çÇ ¿ ºª áéíóú àèìòù äëïöü'
print string


Nota: recuerda que en cada caso debes guardar el archivo .py con la misma codificación que hayas declarado en la cabecera del script. No esperes que el uso ni la impresión de caracteres te funcione correctamente si declaras una codificación Windows-1252 pero el archivo lo guardas con codificación UTF-8, o viceversa si declaras una codificación UTF-8 pero la codificación del archivo sea Windows-1252. Esto al menos en Python 2.7.x



De todas formas también te digo que... lo mejor que puedes hacer es acostumbrarte a la programación en Inglés (o dicho de otra forma: universal) y dejar de programar en Español, escribír un menú en español, nombres de variables en español y cosas así es simplemente horrible y a la larga antiproductivo ya que la programación en Español no te aportará ningún beneficio de forma profesional.

Saludos.