Saya ingin membuat kamus di mana kata-kata bahasa Inggris mengarah ke terjemahan bahasa Rusia dan Prancis.
Bagaimana cara mencetak karakter unicode dengan Python? Juga, bagaimana Anda menyimpan karakter unicode dalam variabel?
python
python-unicode
NoobDev4iPhone
sumber
sumber
u
memungkinkan python untuk menganggapnya sebagai literal string unicode.Jawaban:
Untuk menyertakan karakter Unicode dalam kode sumber Python Anda, Anda dapat menggunakan karakter escape Unicode dalam formulir
\u0123
di string Anda, dan awali literal string dengan 'u'.Berikut adalah contoh yang berjalan di konsol interaktif Python:
String yang dideklarasikan seperti ini adalah variabel tipe Unicode, seperti yang dijelaskan dalam dokumentasi Python Unicode .
Jika menjalankan perintah di atas tidak menampilkan teks dengan benar untuk Anda, mungkin terminal Anda tidak mampu menampilkan karakter Unicode.
Untuk informasi tentang membaca data Unicode dari file, lihat jawaban ini:
Membaca karakter dari file dengan Python
sumber
mystr
? lalu bagaimana cara mencetaknya?print your_unicode_characters.encode('utf-8')
Cetak karakter unicode dengan Python:
Cetak karakter unicode langsung dari interpreter python:
Karakter unicode
u'\u2713'
adalah tanda centang. Penerjemah mencetak tanda centang di layar.Cetak karakter unicode dari skrip python:
Taruh ini di test.py:
Jalankan seperti ini:
Jika tidak menunjukkan tanda centang untuk Anda, maka masalahnya mungkin ada di tempat lain, seperti pengaturan terminal atau sesuatu yang Anda lakukan dengan pengalihan aliran.
Simpan karakter unicode dalam file:
Simpan ini ke file: foo.py:
Jalankan dan kirimkan output ke file:
Buka tmp.txt dan lihat ke dalam, Anda akan melihat ini:
Jadi Anda telah menyimpan unicode e dengan tanda obfuscation di atasnya ke sebuah file.
sumber
Jika Anda mencoba
print()
Unicode, dan mendapatkan kesalahan codec ascii , lihat halaman ini , yang TLDR-nya dilakukanexport PYTHONIOENCODING=UTF-8
sebelum mengaktifkan python (variabel ini mengontrol urutan byte apa yang coba konsol untuk mengenkode data string Anda sebagai). Secara internal, Python3 menggunakan UTF-8 secara default (lihat Unicode HOWTO) jadi bukan itu masalahnya; Anda bisa meletakkan Unicode dalam string, seperti yang terlihat di jawaban dan komentar lain. Saat Anda mencoba dan mengeluarkan data ini ke konsol Anda, masalah terjadi. Python menganggap konsol Anda hanya dapat menangani ascii. Beberapa jawaban lain mengatakan, "Tulis ke file, dulu" tetapi perhatikan bahwa mereka menentukan pengkodean (UTF-8) untuk melakukannya (jadi, Python tidak mengubah apa pun secara tertulis), dan kemudian menggunakan metode untuk membaca file yang hanya mengeluarkan byte tanpa memperhatikan pengkodean, itulah sebabnya itu berfungsi.sumber
Di Python 2, Anda mendeklarasikan string unicode dengan a
u
, as inu"猫"
and usedecode()
andencode()
to translate to and from unicode.Ini agak lebih mudah dengan Python 3. Gambaran yang sangat bagus dapat ditemukan di sini . Presentasi itu mengklarifikasi banyak hal bagi saya.
sumber
Mengingat ini adalah hasil stack overflow pertama ketika google mencari topik ini, perlu disebutkan bahwa prefiks
u
string unicode adalah opsional di Python 3. (contoh Python 2 disalin dari jawaban atas)Python 3 (keduanya berfungsi):
Python 2:
sumber
Saya menggunakan Winpython portabel di Windows, itu termasuk konsol IPython QT, saya dapat mencapai yang berikut.
interpreter konsol Anda harus mendukung unicode untuk menampilkan karakter unicode.
sumber
Hanya satu hal lagi yang belum ditambahkan
Di Python 2, jika Anda ingin mencetak variabel yang memiliki unicode dan digunakan
.format()
, lakukan ini (buat string dasar yang diformat menjadi string unicode denganu''
:sumber
Ini memperbaiki pencetakan UTF-8 dengan python:
sumber
Ganti '+' dengan '000' . Misalnya, 'U + 1F600' akan menjadi 'U0001F600' dan menambahkan kode Unicode dengan "\" dan mencetak. Contoh:
Periksa ini mungkin itu akan membantu emoji unicode python
sumber