Quero fazer um dicionário onde palavras em inglês apontem para traduções em russo e francês.
Como faço para imprimir caracteres Unicode em Python? Além disso, como você armazena caracteres Unicode em uma variável?
python
python-unicode
NoobDev4iPhone
fonte
fonte
u
permite que o python as considere como strings literais Unicode.Respostas:
Para incluir caracteres Unicode em seu código-fonte Python, você pode usar caracteres de escape Unicode na forma
\u0123
de sua string e prefixar a string literal com 'u'.Aqui está um exemplo em execução no console interativo Python:
Strings declaradas assim são variáveis do tipo Unicode, conforme descrito na documentação do Python Unicode .
Se a execução do comando acima não exibir o texto corretamente para você, talvez seu terminal não seja capaz de exibir caracteres Unicode.
Para obter informações sobre como ler dados Unicode de um arquivo, consulte esta resposta:
Leitura de caracteres de arquivo em Python
fonte
mystr
? então como imprimir isso?print your_unicode_characters.encode('utf-8')
Imprima um caractere Unicode em Python:
Imprima um caractere Unicode diretamente do interpretador Python:
O caractere Unicode
u'\u2713'
é uma marca de seleção. O intérprete imprime a marca de seleção na tela.Imprima um caractere Unicode de um script Python:
Coloque isso em test.py:
Execute assim:
Se não houver uma marca de seleção para você, o problema pode estar em outro lugar, como as configurações do terminal ou algo que você está fazendo com o redirecionamento de fluxo.
Armazene caracteres Unicode em um arquivo:
Salve no arquivo: foo.py:
Execute-o e canalize a saída para o arquivo:
Abra tmp.txt e olhe dentro, você verá isto:
Assim, você salvou em um arquivo o Unicode e com uma marca de ofuscação.
fonte
Se você está tentando
print()
Unicode e recebendo erros de codec ascii , verifique esta página , cujo TLDR é feitoexport PYTHONIOENCODING=UTF-8
antes de iniciar o python (esta variável controla a sequência de bytes que o console tenta codificar seus dados de string). Internamente, Python3 usa UTF-8 por padrão (veja o Unicode HOWTO), então esse não é o problema; você pode simplesmente colocar Unicode em strings, como visto nas outras respostas e comentários. É quando você tenta obter esses dados para o console que o problema acontece. Python acha que seu console só pode lidar com ascii. Algumas das outras respostas dizem: "Grave em um arquivo primeiro", mas observe que eles especificam a codificação (UTF-8) para fazer isso (portanto, o Python não muda nada na escrita) e, em seguida, usa um método para leitura o arquivo que apenas cospe os bytes sem nenhuma preocupação com a codificação, e é por isso que funciona.fonte
No Python 2, você declara strings Unicode com a
u
, as inu"猫"
e usadecode()
eencode()
para traduzir de e para Unicode, respectivamente.É um pouco mais fácil no Python 3. Uma ótima visão geral pode ser encontrada aqui . Essa apresentação esclareceu muitas coisas para mim.
fonte
Considerando que este é o primeiro resultado de estouro de pilha ao pesquisar este tópico no Google, vale a pena mencionar que o prefixo
u
strings Unicode é opcional no Python 3. (o exemplo do Python 2 foi copiado da resposta principal)Python 3 (ambos funcionam):
Python 2:
fonte
Eu uso o Winpython portátil no Windows, ele inclui o console IPython QT, eu poderia conseguir o seguinte.
seu interpretador de console deve suportar Unicode para mostrar caracteres Unicode.
fonte
Só mais uma coisa que ainda não foi adicionada
No Python 2, se você quiser imprimir uma variável que tenha unicode e use
.format()
, faça isso (faça da string base que está sendo formatada uma string Unicode comu''
:fonte
Isso corrige a impressão UTF-8 em python:
fonte
Substitua '+' por '000' . Por exemplo, 'U + 1F600' se tornará 'U0001F600' e incluirá "\" no prefixo do código Unicode e imprimirá. Exemplo:
Verifique isso talvez ajude python emoji Unicode
fonte