associação pythonbrasil[11] django zope/plone planet Início Logado como (Entrar)

Revisão 2e 2008-02-18 20:10:59

Excluir mensagem

TudoSobrePythoneUnicode

Tudo Sobre Python e Unicode

Tradução de [http://boodebr.org/main/python/all-about-python-and-unicode "All about Python and Unicode"]

TableOfContents

Um ponto de partida

Duas semanas antes de começar a escrever este documento, meu conhecimento sobre [http://www.python.org/ Python] e [http://www.unicode.org/ Unicode] era algo como:

  • Tudo que precisa para usar Unicode em Python é passar suas strings para unicode()

Agora, onde eu fui arranjar uma idéia tão estranha? Ah, certo, do [http://docs.python.org/tut/node5.html#SECTION005130000000000000000 tutorial de Python sobre Unicode], que afirma:

  • "Criar strings Unicode em Python é tão simples quanto criar strings normais":

    >>> u'Alô Mundo !' u'Alô Mundo !'

Ainda que este exemplo seja tecnicamente correto, ele pode enganar o iniciante em Unicode, uma vez que ele esconde diversos detalhes necessários para o uso prático. Esta explicação ultra simplificada me deu um entendimento completamente errado sobre como Unicode funciona em Python.

Se você também foi guiado pelo caminho ultra simplificado, então este tutorial irá provavelmente ajudá-lo. Este tutorial contém um conjunto de exemplos, testes e demonstrações que documentam meu "reaprendizado" da forma correta de trabalhar com Unicode em Python. Ele inclui problemas de portabilidade, assim como questões que surgem quando lidamos com [http://www.w3.org/MarkUp/HTML HTML], [http://www.w3.org/XML/ XML] e sistemas de arquivo.

Aproveitando, Unicode é justamente simples, eu só queria ter aprendido a usá-lo corretamente da primeira vez.

Onde começar?

Em alto nível, computadores utilizam três tipos de representação de textos:

  1. ASCII
  2. Conjuntos de caracteres Multibyte
  3. Unicode

Eu acho que Unicode é mais fácil de entender se você entender como ele evoluiu a partir do código ASCII. A parte seguinte é umá breve sinópse desta evolução.

=== Do ASCII ao Multibyte ===

Texto Unicode em Python

Convertendo símbolos Unicode em literais Python

Por que o "print" não funciona?

Codecs

De Unicode para binário

De binário para Unicode

Operações com Strings

Uma pegadinha do \U

Bugs do Python 2.0 & 2.1

Python como um "recodificador universal"

Agora começa a diversão... Unicode e o Mundo Real

Nomes de arquivo com caracteres Unicode

Microsoft Windows

Unix/POSIX/Linux

Mac OS/X

Unicode e HTML

Unicode e XML

Unicode e diretórios compartilhados (Samba)

Sumário