UnicodeDecodeError: 'ascii' codec
can't decode byte 0xc4 in position
10: ordinal not in range(128)
UnicodeEncodeError: 'as...
Fundamental
El texto plano NO EXISTE
(y no son los padres)
miércoles 31 de julio de 2013
Encoding
Una cadena de texto no tiene sentido
si no especificamos qué encoding se
está usando para mostrarla
miércoles 31 d...
Encoding
Conjunto de reglas que asignan valores
numéricos a cada carácter de texto
miércoles 31 de julio de 2013
Problema en Python 2.x
Python 2.x usa por defecto
encoding ASCII
(o sea, que no sabe qué hacer con los caracteres
cuya rep...
Encoding ASCII
miércoles 31 de julio de 2013
¿Qué hacemos?
Usar otro encoding (Python 2.x
soporta más de 100)
miércoles 31 de julio de 2013
Otros encodings
miércoles 31 de julio de 2013
Otros encodings
miércoles 31 de julio de 2013
¿Cuál elegir?
UTF-8
Longitud variable, soporte completo
de Unicode
miércoles 31 de julio de 2013
Unicode
Mapea caracteres con “code points”, no con enteros (1 -
127).
Hay 1.114.122 puntos de código (capaz de representar...
Unicode
miércoles 31 de julio de 2013
Unicode
Ian Albert
22017x42807 px
miércoles 31 de julio de 2013
Unicode y Python 2.x
miércoles 31 de julio de 2013
Unicode y Python 2.x
Str: secuencia de bytes
Unicode: secuencia de codepoints
miércoles 31 de julio de 2013
Unicode y Python 2.x
Python intenta transformar texto en Unicode de manera
automática
miércoles 31 de julio de 2013
Unicode <-> Str
miércoles 31 de julio de 2013
Cómo trabajar
• 1. Decode early
• 2. Unicode everywhere
• 3. Encode late
miércoles 31 de julio de 2013
Más información
• http://www.joelonsoftware.com/articles/
Unicode.html
• http://nedbatchelder.com/text/unipain/
unipain.ht...
Upcoming SlideShare
Loading in …5
×

Geoinquietos Madrid - Python 2.x y los encodings

281 views

Published on

Small presentation about how Python 2.x handle encodings. In Spanish.

Published in: Engineering
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
281
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
1
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Geoinquietos Madrid - Python 2.x y los encodings

  1. 1. UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 10: ordinal not in range(128) UnicodeEncodeError: 'ascii' codec can't encode characters in position 3-8: ordinal not in range(128) ¿Os ha pasado alguna vez? miércoles 31 de julio de 2013
  2. 2. Fundamental El texto plano NO EXISTE (y no son los padres) miércoles 31 de julio de 2013
  3. 3. Encoding Una cadena de texto no tiene sentido si no especificamos qué encoding se está usando para mostrarla miércoles 31 de julio de 2013
  4. 4. Encoding Conjunto de reglas que asignan valores numéricos a cada carácter de texto miércoles 31 de julio de 2013
  5. 5. Problema en Python 2.x Python 2.x usa por defecto encoding ASCII (o sea, que no sabe qué hacer con los caracteres cuya representación es un byte mayor que 127) miércoles 31 de julio de 2013
  6. 6. Encoding ASCII miércoles 31 de julio de 2013
  7. 7. ¿Qué hacemos? Usar otro encoding (Python 2.x soporta más de 100) miércoles 31 de julio de 2013
  8. 8. Otros encodings miércoles 31 de julio de 2013
  9. 9. Otros encodings miércoles 31 de julio de 2013
  10. 10. ¿Cuál elegir? UTF-8 Longitud variable, soporte completo de Unicode miércoles 31 de julio de 2013
  11. 11. Unicode Mapea caracteres con “code points”, no con enteros (1 - 127). Hay 1.114.122 puntos de código (capaz de representar cualquier lenguaje) miércoles 31 de julio de 2013
  12. 12. Unicode miércoles 31 de julio de 2013
  13. 13. Unicode Ian Albert 22017x42807 px miércoles 31 de julio de 2013
  14. 14. Unicode y Python 2.x miércoles 31 de julio de 2013
  15. 15. Unicode y Python 2.x Str: secuencia de bytes Unicode: secuencia de codepoints miércoles 31 de julio de 2013
  16. 16. Unicode y Python 2.x Python intenta transformar texto en Unicode de manera automática miércoles 31 de julio de 2013
  17. 17. Unicode <-> Str miércoles 31 de julio de 2013
  18. 18. Cómo trabajar • 1. Decode early • 2. Unicode everywhere • 3. Encode late miércoles 31 de julio de 2013
  19. 19. Más información • http://www.joelonsoftware.com/articles/ Unicode.html • http://nedbatchelder.com/text/unipain/ unipain.html • http://farmdev.com/talks/unicode/ miércoles 31 de julio de 2013

×