<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>http://educacion.luisantolin.com/index.php?action=history&amp;feed=atom&amp;title=Charsets_y_Encodings</id>
	<title>Charsets y Encodings - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="http://educacion.luisantolin.com/index.php?action=history&amp;feed=atom&amp;title=Charsets_y_Encodings"/>
	<link rel="alternate" type="text/html" href="http://educacion.luisantolin.com/index.php?title=Charsets_y_Encodings&amp;action=history"/>
	<updated>2026-05-12T13:43:13Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>http://educacion.luisantolin.com/index.php?title=Charsets_y_Encodings&amp;diff=116&amp;oldid=prev</id>
		<title>Lantolin en 10:57 1 abr 2018</title>
		<link rel="alternate" type="text/html" href="http://educacion.luisantolin.com/index.php?title=Charsets_y_Encodings&amp;diff=116&amp;oldid=prev"/>
		<updated>2018-04-01T10:57:11Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revisión del 10:57 1 abr 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l86&quot;&gt;Línea 86:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 86:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Desde el punto de vista de los lenguajes y como representan internamente Unicode hay dos aproximaciones. Una es usar cadenas de enteros de 4 bytes (wchar[]) de ese modo se almacena un caracter Unicode por cada wchar sin ninguna transformación. Otra es usar cadenas de bytes (char[]) y guardar la transformación UTF-8 de los caracteres Unicode.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Desde el punto de vista de los lenguajes y como representan internamente Unicode hay dos aproximaciones. Una es usar cadenas de enteros de 4 bytes (wchar[]) de ese modo se almacena un caracter Unicode por cada wchar sin ninguna transformación. Otra es usar cadenas de bytes (char[]) y guardar la transformación UTF-8 de los caracteres Unicode.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Herramientas de conversion ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Este [https://stackoverflow.com/questions/64860/best-way-to-convert-text-files-between-character-sets artículo] presenta multiples maneras.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[wikipedia:Iconv|Iconv]] es una, &amp;lt;code&gt;recode&amp;lt;/code&gt; es otra.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Ejemplos:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; recode UTF-8..ISO-8859-1 fichero-en-utf-8-que-acabara-como-iso.txt &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; recode ISO-8859-1..UTF-8 fichero-en-iso-que-acabara-como-utf-8.txt &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Referencias ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Referencias ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[http://www.cl.cam.ac.uk/~mgk25/unicode.html UTF-8 and Unicode FAQ for Unix/Linux]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[http://www.cl.cam.ac.uk/~mgk25/unicode.html UTF-8 and Unicode FAQ for Unix/Linux]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Notas manuscritas originales de la primera vez que me puse a entender esto:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;gallery&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Archivo:Cuaderno01.jpg&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Archivo:Cuaderno02.jpg&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Archivo:Cuaderno03.jpg&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/gallery&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lantolin</name></author>
	</entry>
	<entry>
		<id>http://educacion.luisantolin.com/index.php?title=Charsets_y_Encodings&amp;diff=112&amp;oldid=prev</id>
		<title>Lantolin: Página creada con «Juegos de caracteres y codificaciones.  Es un tema que puede ser confuso y lioso. Este es mi intento de aclarar términos y explicarlo de extremo a extremo.  == Introducci...»</title>
		<link rel="alternate" type="text/html" href="http://educacion.luisantolin.com/index.php?title=Charsets_y_Encodings&amp;diff=112&amp;oldid=prev"/>
		<updated>2018-04-01T10:40:12Z</updated>

		<summary type="html">&lt;p&gt;Página creada con «Juegos de caracteres y codificaciones.  Es un tema que puede ser confuso y lioso. Este es mi intento de aclarar términos y explicarlo de extremo a extremo.  == Introducci...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Juegos de caracteres y codificaciones.&lt;br /&gt;
&lt;br /&gt;
Es un tema que puede ser confuso y lioso. Este es mi intento de aclarar términos y explicarlo de extremo a extremo.&lt;br /&gt;
&lt;br /&gt;
== Introducción y conceptos ==&lt;br /&gt;
&lt;br /&gt;
El RFC2278 define &amp;#039;&amp;#039;&amp;#039;Coded Character Set (CCS)&amp;#039;&amp;#039;&amp;#039; como un mapeo entre un conjunto de caracteres abstractos y un conjunto de enteros. Es decir un CCS no es mas que una tabla que asocia glifos a números.&lt;br /&gt;
&lt;br /&gt;
Ese mismo RFC define &amp;#039;&amp;#039;&amp;#039;Character Encoding Scheme (CES)&amp;#039;&amp;#039;&amp;#039; como una manera de transformar los enteros de un CCS en una serie de octetos.&lt;br /&gt;
&lt;br /&gt;
Y en realidad con estos dos conceptos tenemos resueltos los dos problemas de representar cualquier caracter:&lt;br /&gt;
&lt;br /&gt;
# una tabla que relaciona caracteres con números&lt;br /&gt;
# una manera de que si esos números son mayores que un octeto (255) los transformemos en octetos, y de octetos al número&lt;br /&gt;
&lt;br /&gt;
Ejemplos de CCS: ASCII, Unicode, ISO-10646, ISO-8859, etc.&lt;br /&gt;
&lt;br /&gt;
Ejemplos de CES: UTF-8, UCS-2, UCS-4, etc.&lt;br /&gt;
&lt;br /&gt;
== CCSs: ISO-10646 y Unicode ==&lt;br /&gt;
&lt;br /&gt;
El ISO-10646 definió el Universal Character Set (UCS). Es un CCS que mapea glifos a enteros de 32 bits (4 bytes).&lt;br /&gt;
&lt;br /&gt;
Unicode fue un esfuerzo paralelo. A partir de Unicode 2.0 se unifican. A día de hoy son 100% compatibles.&lt;br /&gt;
&lt;br /&gt;
Lo que pretenden ambos era unificar y sustituir a los viejos e insuficientes CCSs como ASCII (7 bits) y sus extensiones locales de 8 bits, los ISO-8859-x.&lt;br /&gt;
&lt;br /&gt;
Estas extensiones locales, como ISO-8859-1 (también llamado Latin1), definen los caracteres del 129 al 255. Este [[http://aspell.net/charsets/iso8859.html enlace] explica estupendamente estos ISO.&lt;br /&gt;
&lt;br /&gt;
En resumen, es sorprendente saber cuantos años hemos ido tirando con 127 caracteres (ASCII), y luego con el empujon de 127 más (varios ISO-8859-x), hasta que por fin tenemos un estandar que cubre la representación de cualquier glifo posible (Unicode o ISO-10646).&lt;br /&gt;
&lt;br /&gt;
== Encodings: UTF-8 ==&lt;br /&gt;
&lt;br /&gt;
Pero aquí surge el problema, los ordenadores y las redes, por su arquitectura, están acostumbrados a manejar octetos, las representaciones de información de más de 8 bits les dan problemas así que necesitan métodos fiables de transformar enteros mayores de 255 a octetos.&lt;br /&gt;
&lt;br /&gt;
Eso es lo que hace UTF-8 (UCS Transformation Format), que es un CES que transforma los enteros del Unicode (un CCS) en secuencias de bytes.&lt;br /&gt;
&lt;br /&gt;
Ojo, aqui suele venir la confusión, a veces se entiende UTF-8 como una tabla de caracteres (CCS), y no lo es, es un Encoding (CES). El error es comprensible porque el UTF-8 implica usar Unicode, que si es una tabla de caracteres.&lt;br /&gt;
&lt;br /&gt;
UTF-8 no es el único CES, hay otros como UTF-12 o UCS-2.&lt;br /&gt;
&lt;br /&gt;
== Ejemplos ==&lt;br /&gt;
&lt;br /&gt;
Estos 12 glifos:&lt;br /&gt;
&lt;br /&gt;
 ÁÉÍÓÚÑáéíóúñ&lt;br /&gt;
&lt;br /&gt;
En el CCS ISO-8859-1 serían:&lt;br /&gt;
&lt;br /&gt;
 00000000  c1 c9 cd d3 da d1 e1 e9  ed f3 fa f1              |............|&lt;br /&gt;
&lt;br /&gt;
Nótese como son todos mayores de 127 (caen fuera de ASCII), pero menores que 255. Como se trata de un CCS de un solo byte no necesita encoding, se almacena tal cual, ocupan 12 bytes.&lt;br /&gt;
&lt;br /&gt;
Algo similar obtenemos con:&lt;br /&gt;
&lt;br /&gt;
 $ echo -n Ññ | iconv -t ISO-8859-1 -f UTF-8 -t ISO-8859-1  | od --endian=big -x&lt;br /&gt;
 0000000 d1f1&lt;br /&gt;
&lt;br /&gt;
Explicación: imprimimos (sin salto de carro) los caracteres Ñ y ñ. Como estamos en un Linux moderno (Debian 8) el terminal ya trabaja en UTF-8, así que convertimos a un juego de caracteres de 8 bits y luego representamos el resultado en hexadecimal. Resultado, los índices de la ñ y la Ñ en la tabla de caracteres ISO-8859-1.&lt;br /&gt;
&lt;br /&gt;
Si vieramos un fichero escrito en UTF-8 con esos mismos 12 glifos, veríamos esto:&lt;br /&gt;
&lt;br /&gt;
 00000000  c3 81 c3 89 c3 8d c3 93  c3 9a c3 91 c3 a1 c3 a9  |................|&lt;br /&gt;
 00000010  c3 ad c3 b3 c3 ba c3 b1                           |........|&lt;br /&gt;
 00000018&lt;br /&gt;
&lt;br /&gt;
Aquí vemos con un solo glifo (Á) da lugar a más de 1 byte (C3 81). Por tanto la representación de estos 12 glifos en UTF-8 ocupa 24 bytes.&lt;br /&gt;
&lt;br /&gt;
Es lo mismo que obtenemos si hacemos: &lt;br /&gt;
&lt;br /&gt;
 $ echo -n Ññ | od --endian=big -x&lt;br /&gt;
 0000000 c391 c3b1&lt;br /&gt;
&lt;br /&gt;
Por último como ejemplo de otras codificaciones veamos lo que ocurre si usamos UCS-2 y UCS-4:&lt;br /&gt;
&lt;br /&gt;
 $ echo -n Ññ | iconv -f UTF-8 -t UCS-2 | od --endian=big -x&lt;br /&gt;
 0000000 d100 f100&lt;br /&gt;
&lt;br /&gt;
 $ echo -n Ññ | iconv -f UTF-8 -t UCS-4 | od --endian=big -x&lt;br /&gt;
 0000000 0000 00d1 0000 00f1&lt;br /&gt;
&lt;br /&gt;
Estas son codificaciones muy triviales que para los números bajos se limitan a añadir ceros hasta completar los 2 o 4 bytes.&lt;br /&gt;
&lt;br /&gt;
== Lenguajes de programación ==&lt;br /&gt;
&lt;br /&gt;
Desde el punto de vista de los lenguajes y como representan internamente Unicode hay dos aproximaciones. Una es usar cadenas de enteros de 4 bytes (wchar[]) de ese modo se almacena un caracter Unicode por cada wchar sin ninguna transformación. Otra es usar cadenas de bytes (char[]) y guardar la transformación UTF-8 de los caracteres Unicode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cl.cam.ac.uk/~mgk25/unicode.html UTF-8 and Unicode FAQ for Unix/Linux]&lt;/div&gt;</summary>
		<author><name>Lantolin</name></author>
	</entry>
</feed>