Unicode_literals en Python

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")
Producción

ℙƴ☂ℌøἤ

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *