Unicode también se denomina conjunto de caracteres universales. ASCII usa 8 bits (1 byte) para representar un carácter y puede tener un máximo de 256 (2^8) combinaciones distintas. El problema con ASCII es que solo admite el idioma inglés, pero ¿qué pasa si queremos usar otro idioma como hindi, ruso, chino, etc.? No teníamos suficiente espacio en ASCII para cubrir todos estos idiomas y emojis. Aquí es donde entra Unicode, Unicode nos proporciona una tabla enorme en la que podemos almacenar la tabla ASCII y también la medida para almacenar otros idiomas, símbolos y emojis.
En realidad, no podemos guardar el texto como Unicode directamente. Porque Unicode es solo una representación abstracta de los datos de texto. Necesitamos algún tipo de codificación/mapeo para mapear cada carácter a un cierto número. Si un personaje usa más de 1 byte (8 bits), entonces todos esos bytes deben empaquetarse como una sola unidad (piense en una caja con más de un elemento). Este método de boxeo se denomina método UTF-8 . En UTF-8 el carácter puede ocupar un mínimo de 8 bits y en UTF-16 un carácter puede ocupar un mínimo de 16 bits. UTF es solo un algoritmo que convierte Unicode en bytes y lo vuelve a leer
Normalmente, en python2, todos los literales de string se consideran strings de bytes de forma predeterminada, pero en la versión posterior de python, todos los literales de string son strings Unicode de forma predeterminada. Entonces, para hacer que todas las strings sean literales Unicode en python, usamos la siguiente importación:
de __future__ importar unicode_literals
Si usamos una versión anterior de python, debemos importar los literales unicode del paquete futuro. Esta importación hará que python2 se comporte como lo hace python3. Esto hará que el código sea compatible con la versión cross-python.
Python 2
Python
import sys # checking the default encoding of string print "The default encoding for python2 is:", sys.getdefaultencoding()
Producción:
The default encoding for python2 is: ascii
Como en python2, la codificación predeterminada es ASCII, necesitamos cambiar la codificación a utf-8.
Python
from __future__ import unicode_literals # creating variables to holds # the letters in python word. p = "\u2119" y = "\u01b4" t = "\u2602" h = "\u210c" o = "\u00f8" n = "\u1f24" # printing Python # encoding to utf-8 from ascii print(p+y+t+h+o+n).encode("utf-8")
ℙƴ☂ℌøἤ
Python3:
Python3
# In python3 # By default the encoding is "utf-8" import sys # printing the default encoding print("The default encoding for python3 is:", sys.getdefaultencoding()) # to define string as unicode # we need to prefix every string with u"...." p = u"\u2119" y = u"\u01b4" t = u"\u2602" h = u"\u210c" o = u"\u00f8" n = u"\u1f24" # printing Python print(p+y+t+h+o+n)
Producción:
The default encoding for python3 is: utf-8 ℙƴ☂ℌøἤ
Aquí,
No Señor. |
Unicode |
Descripción |
---|---|---|
1. |
U+2119 |
mostrará una P mayúscula doble pulsada |
2. |
U+01B4 |
mostrará la letra Y minúscula latina con un gancho. |
3. |
U+2602 |
mostrará un paraguas. |
4. |
U+210C |
mostrará la letra H mayúscula. |
5. |
U+00F8 |
mostrará la letra O minúscula latina con un trazo. |
6. |
U+1F24 |
mostrará la letra griega ETA. |
Publicación traducida automáticamente
Artículo escrito por amnindersingh1414 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA