elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Problema con caracteres especiales Python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con caracteres especiales Python  (Leído 7,771 veces)
Raiderz92

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Problema con caracteres especiales Python
« en: 16 Marzo 2017, 01:22 am »

Buenas gente, tengo el siguiente problema con Python:

Al intentar escribir el símbolo "¿" me aparece de la siguiente forma al iniciar el programa:

https://gyazo.com/a01a30d2e5e38e5ac3077835da3bd43b


He probado usando el siguiente coding :

# -*- coding: utf-8 -*-

el cual soluciona mi problema pero debo anteponer la letra "u" antes del texto a escribir y en el caso de esta linea:

a = float (raw_input("¿¿¿¿¿"))

no funciona anteponer la letra "u" antes del texto.

Creo recordar que hace un tiempo podía escribir dichos caracteres, tales como ñ, tildes, etc sin problemas, pero ya no mas.

Cabe mencionar que estoy recién iniciándome en Python y quizás esté haciendo algo mal, por lo que agradecería que me ayudaran.

Espero podáis ayudarme y gracias de antemano, saludos!


« Última modificación: 16 Marzo 2017, 01:30 am por Destroyerpk » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Problema con caracteres especiales Python
« Respuesta #1 en: 16 Marzo 2017, 01:29 am »

en que sistema operativo estás? que consola usas? que versión de python tienes?

a mi el codigo me funciona sin problemas


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Raiderz92

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Problema con caracteres especiales Python
« Respuesta #2 en: 16 Marzo 2017, 01:31 am »

en que sistema operativo estás? que consola usas? que versión de python tienes?

a mi el codigo me funciona sin problemas


Estoy usando Windows 7, la versión de python es la 2.7.13 y en cuanto a lo de la consola no sé a que te refieres
« Última modificación: 16 Marzo 2017, 01:33 am por Destroyerpk » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Problema con caracteres especiales Python
« Respuesta #3 en: 16 Marzo 2017, 01:34 am »

usa la consola del sistema directamente... es decir, abre cmd, navega al directorio y ejecuta el .py
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Raiderz92

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Problema con caracteres especiales Python
« Respuesta #4 en: 16 Marzo 2017, 01:44 am »

usa la consola del sistema directamente... es decir, abre cmd, navega al directorio y ejecuta el .py



He hecho lo que me dices y el problema continua...

No existe una forma de no tener que anteponer la letra "u" antes del texto a escribir?
y si no es posible en que parte debería poner la letra "u" en la siguiente linea para que
funcione correctamente?

a = float (raw_input("¿¿¿¿¿"))
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Problema con caracteres especiales Python
« Respuesta #5 en: 16 Marzo 2017, 01:48 am »

no creo que ese sea el problema, porque como ya te dije me funciona bien (claro, en condiciones diferentes, ando en linux) pero debería ser compatible... con tu editor asegurate de salvar el archivo con codificación utf8

En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Raiderz92

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Problema con caracteres especiales Python
« Respuesta #6 en: 16 Marzo 2017, 01:50 am »

no creo que ese sea el problema, porque como ya te dije me funciona bien (claro, en condiciones diferentes, ando en linux) pero debería ser compatible... con tu editor asegurate de salvar el archivo con codificación utf8



Estoy ocupando notepad++ y en codificación está marcado utf-8 pero el problema continua
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.775



Ver Perfil
Re: Problema con caracteres especiales Python
« Respuesta #7 en: 16 Marzo 2017, 02:06 am »

Estoy ocupando notepad++ y en codificación está marcado utf-8

Pero es que tú estás utilizando e intentando representar caracteres del set de caracteres Windows Latin 1, usease, el Castellano. Hay varias soluciones para ello, la más simple es que guardes tu archivo .py en codificación ANSI (Windows 1252 / CHCP-1252 / Latin-1) y le asignes la misma codificación en el código fuente, y ya no tendrás ese problema.



Lee Aquí:

¡Saludos!
« Última modificación: 16 Marzo 2017, 02:10 am por Eleкtro » En línea


Raiderz92

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Problema con caracteres especiales Python
« Respuesta #8 en: 16 Marzo 2017, 02:33 am »

Pero es que tú estás utilizando e intentando representar caracteres del set de caracteres Windows Latin 1, usease, el Castellano. Hay varias soluciones para ello, la más simple es que guardes tu archivo .py en codificación ANSI (Windows 1252 / CHCP-1252 / Latin-1) y le asignes la misma codificación en el código fuente, y ya no tendrás ese problema.



Lee Aquí:

¡Saludos!


Hola Elektro, muchas gracias por la respuesta, he seguido los pasos que me has dicho y este funciona a la perfección pero siempre anteponiendo la letra "u" tal cual muestra la imagen:

https://gyazo.com/65d41eee205adbffabd420d897b467e1

si no coloco la letra u aparece de la siguiente forma:

https://gyazo.com/00837c1162de67206d0a52822c359b7e

Existe alguna forma de no tener que anteponer la letra u para que este funcione?

Esa es la duda que tengo y el problema, ya que al tener que anteponer dicha letra no funciona la siguiente linea:

a = float (raw_input("¿¿¿¿¿"))

Estos son los casos:

Si no coloco la letra u en la linea anterior se ven unos símbolos extraños en vez de el símbolo "¿".

Si coloco la letra u en la linea anterior simplemente al lanzarlo se crashea y no arranca.

Esta es la forma en que antepongo la letra u en la linea anterior, quizás lo esté haciendo mal...

a = float (raw_input(u"¿¿¿¿¿"))

Disculpen si estoy hablando muchas gilipolleces es que estoy recién empezando y hay muchas cosas que no entiendo.

Saludos y muchas gracias nuevamente por ayudarme!







« Última modificación: 16 Marzo 2017, 02:59 am por Destroyerpk » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.775



Ver Perfil
Re: Problema con caracteres especiales Python
« Respuesta #9 en: 16 Marzo 2017, 03:15 am »

Existe alguna forma de no tener que anteponer la letra u para que este funcione?

Bueno, como puedes comprobar yo no tuve la necesidad de usar el modificador "u" para especificar un string unicode de forma literal.

¿Te has asegurado de guardar el archivo.py en codificación ANSI?. Abre el archivo.py en el bloc de notas -> menú: Guardar Como... -> Codificación: ANSI
En el Notepad++ también deberías poder especificar la codificación del archivo a ANSI: Windows-1252, pero no uso ese editor, así que te dije como hacerlo con el Notepad de Windows.

Quizás lo que ocurra es que también tengas asignado un codepage inapropiado en la CMD de Windows. Para comprobar el codepage de Windows que usa tu CMD, simplemente escribe el comando CHCP:



Si usas otro codepage distinto (como probablemente estarás usando el CHCP 850) entonces los caracteres que hayas especificado en el código de Python se representarán usando la codificación de la CMD por mucho que especifiques en el código fuente del archivo.py el codepage Windows-1252 y guardes el archivo en la misma codificación...

Eso puedes evitarlo con el modificador "u" o con el método decode como ya pudiste ver en el otro comentario que cité, pero ya has dejado claro que no quieres usar nada eso (supongo que por incomodidad). Bueno, pues entonces usando este código deberías poder prevenir ese problema:

Código
  1. # -*- coding: Windows-1252 -*-
  2. import os, sys
  3.  
  4. os.system('(CHCP 1252)1>NUL')
  5. print "áéíóú ñÑ çÇ ¿"
  6.  
  7. sys.exit(0)
Nota: El cambio del codepage de la CMD es temporal, solo tiene efecto en la instancia de la CMD donde se ejecuta el script.py. Para cambiar el codepage de forma permanente debes utilizar el registro de Windows.

¡Saludos!
« Última modificación: 16 Marzo 2017, 03:21 am por Eleкtro » En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema al leer fichero con caracteres especiales
Programación C/C++
Yeiner 2 5,891 Último mensaje 10 Diciembre 2011, 05:32 am
por Lateseles
[python] ayuda caracteres especiales tildes y ñ python
Scripting
asdexiva 5 10,031 Último mensaje 10 Agosto 2014, 01:49 am
por asdexiva
Problema con caracteres especiales
Programación Visual Basic
rapbyone 2 2,600 Último mensaje 8 Septiembre 2015, 18:56 pm
por rapbyone
[Python] Imprimir caracteres especiales [Resuelto]
Scripting
MA40 1 6,276 Último mensaje 5 Octubre 2016, 01:50 am
por MA40
MOVIDO: Problema con caracteres especiales Python
Programación General
Eleкtro 0 2,214 Último mensaje 16 Marzo 2017, 02:08 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines