Trying to understand Unicode - Intentando entender Unicode
Posted: Wed Sep 30, 2015 8:08 pm
Voy a intentar realizar un pequeño resumen y, espero cometer los menos errores posibles.
Nuestro mapa de caracteres inicialmente estaba representado con 7 bits ( 0...127 )
Pero los ordenadores eran de 8 bytes, por lo que distintas personas empezaron a utilizar mapas de caracteres desde el 128 al 255, con lo que se considera la utilizacion de diferentes paginas de codigos ( codepages ).
Esto era insuficiente para lenguas como el chino, japones, etc
Unicode es un conjunto de caracteres que resuelve estos problemas mediante la definición de todos _ que se utiliza en todo el mundo. En lugar de definir un carácter como una combinación particular de bits como hace el modo ASCII, cada carácter se le asigna un código. Por ejemplo la palabra hola está hecha de código U + 0048 U + 0065 U + 006C U + 006C U + 006F. La lista completa de los códigos se puede encontrar en http://www.unicode.org/charts/.
Hay varias formas de convertir esos codigos en bits, pero la mas popular es UTF8 ( hay que entender entonces que UTF8 es una codificación del mapa de caracteres más a nivel interno ).
Usando UTF-8, cada código 0-127 se almacena en un solo byte. Sólo los códigos 128 y por encima se almacenan utilizando 2, 3, y, de hecho, hasta 6 bytes. Esto tiene el efecto de que un texto en Inglés, por ejemplo, se ve exactamente lo mismo en UTF-8 como en ASCII, porque por cada carácter ASCII con el valor hexadecimal 0xXY, el código Unicode correspondiente es U + 00XY. Esta compatibilidad hace que UTF8 vea los _ que ANSI ( 0...127), pero tambien dependerá de la página de códigos seleccionada (nación) o instalada por defecto. Por supuesto, si usted utiliza una codificación diferente, como UTF-16, no es aplicable lo comentado ya que ninguno de los códigos se codifican en 8 bits.
Aportemos los enlaces que encontremos para tener la mejor documentacion al respecto
Sorry for the translation
I'll try to make a quick run and, hopefully making the fewest mistakes.
Our character map was initially represented with 7 bits (0 ... 127)
But computers were 8 bytes, so people started using different character maps from 128 to 255, which is considered using different code pages (codepages).
This was insufficient for languages like Chinese, Japanese, etc.
Unicode is a character set [/ u] [/ b] that solves these problems by defining all characters used throughout the world. Instead of defining a character as a particular combination of bits as does the ASCII mode, each character is assigned a code. For example the word hello is made of code U + 0048 U + 0065 U + U + 006C 006C U + 006F. The complete list of codes can be found in http://www.unicode.org/charts/.
There are several ways to convert these codes in bits, but the most popular is UTF8 (you must then understand that UTF8 encoding is character map [/ b] [/ u] more internally).
Using UTF-8, each code 0-127 is stored in a single byte. Only codes 128 and above are stored using 2, 3, and, in fact, up to 6 bytes. This has the effect that a text in English, for example, looks exactly the same in UTF-8 and ASCII, because for every ASCII character with hexadecimal value 0xXY, the corresponding Unicode code is U + 00XY. This compatibility makes UTF8 see the same characters as ANSI (0 ... 127), but also depend on the selected code page (nation) or installed by default. Of course, if you use a different encoding such as UTF-16 it is not applicable as already commented that none of the codes are encoded in 8 bits.
We bring the links we find to have the best documentation about
Nuestro mapa de caracteres inicialmente estaba representado con 7 bits ( 0...127 )
Pero los ordenadores eran de 8 bytes, por lo que distintas personas empezaron a utilizar mapas de caracteres desde el 128 al 255, con lo que se considera la utilizacion de diferentes paginas de codigos ( codepages ).
Esto era insuficiente para lenguas como el chino, japones, etc
Unicode es un conjunto de caracteres que resuelve estos problemas mediante la definición de todos _ que se utiliza en todo el mundo. En lugar de definir un carácter como una combinación particular de bits como hace el modo ASCII, cada carácter se le asigna un código. Por ejemplo la palabra hola está hecha de código U + 0048 U + 0065 U + 006C U + 006C U + 006F. La lista completa de los códigos se puede encontrar en http://www.unicode.org/charts/.
Hay varias formas de convertir esos codigos en bits, pero la mas popular es UTF8 ( hay que entender entonces que UTF8 es una codificación del mapa de caracteres más a nivel interno ).
Usando UTF-8, cada código 0-127 se almacena en un solo byte. Sólo los códigos 128 y por encima se almacenan utilizando 2, 3, y, de hecho, hasta 6 bytes. Esto tiene el efecto de que un texto en Inglés, por ejemplo, se ve exactamente lo mismo en UTF-8 como en ASCII, porque por cada carácter ASCII con el valor hexadecimal 0xXY, el código Unicode correspondiente es U + 00XY. Esta compatibilidad hace que UTF8 vea los _ que ANSI ( 0...127), pero tambien dependerá de la página de códigos seleccionada (nación) o instalada por defecto. Por supuesto, si usted utiliza una codificación diferente, como UTF-16, no es aplicable lo comentado ya que ninguno de los códigos se codifican en 8 bits.
Aportemos los enlaces que encontremos para tener la mejor documentacion al respecto
Sorry for the translation
I'll try to make a quick run and, hopefully making the fewest mistakes.
Our character map was initially represented with 7 bits (0 ... 127)
But computers were 8 bytes, so people started using different character maps from 128 to 255, which is considered using different code pages (codepages).
This was insufficient for languages like Chinese, Japanese, etc.
Unicode is a character set [/ u] [/ b] that solves these problems by defining all characters used throughout the world. Instead of defining a character as a particular combination of bits as does the ASCII mode, each character is assigned a code. For example the word hello is made of code U + 0048 U + 0065 U + U + 006C 006C U + 006F. The complete list of codes can be found in http://www.unicode.org/charts/.
There are several ways to convert these codes in bits, but the most popular is UTF8 (you must then understand that UTF8 encoding is character map [/ b] [/ u] more internally).
Using UTF-8, each code 0-127 is stored in a single byte. Only codes 128 and above are stored using 2, 3, and, in fact, up to 6 bytes. This has the effect that a text in English, for example, looks exactly the same in UTF-8 and ASCII, because for every ASCII character with hexadecimal value 0xXY, the corresponding Unicode code is U + 00XY. This compatibility makes UTF8 see the same characters as ANSI (0 ... 127), but also depend on the selected code page (nation) or installed by default. Of course, if you use a different encoding such as UTF-16 it is not applicable as already commented that none of the codes are encoded in 8 bits.
We bring the links we find to have the best documentation about