System.Text.Encoding



Descripción general

Este articulo describe la forma en la que se puede utilizar cualquier codificación de caracteres con la clase System.Text.Encoding sin estar limitados a los métodos estándar que ofrece [UTF-7, UTF-8, UTF-16 (Unicode), UTF-32, ASCII, BigEndianUnicode]

Para especificar la codificación de caracteres usaremos la clase [System.Text.Encoding] cuya referencia MSDN es la siguiente:

Ejemplo:

'-----------------------------------------------------
' El memory stream donde escribo 
Dim MS As System.IO.MemoryStream = Nothing
MS = New System.IO.MemoryStream(1024)
'-----------------------------------------------------
' la secuencia XmlTextWriter para componer el documento
Dim objXmlTextWriter As Xml.XmlTextWriter
Dim CODIFICACION As System.Text.Encoding = System.Text.Encoding.UTF8
objXmlTextWriter = New Xml.XmlTextWriter(MS, Codificacion)

El problemilla aparece cuando queremos usar alguna otra codificación que no son las estándar que muestra la clase es decir alguna codificación diferente a [UTF-7, UTF-8, UTF-16 (Unicode), UTF-32, ASCII, BigEndianUnicode]

Para ello primero hay que comprender el concepto de código de pagina que no es otra cosa que un numero único que identifica perfectamente a la codificación deseada, además cada codificación tiene también un nombre único que al igual que el código podemos emplearlo para referirnos a la codificación

Código Nombre Descripción
1252 Windows-1252 Europeo occidental (Windows)
28591 iso-8859-1 Europa occidental (ISO)
65000 utf-7 utf-7
65001 utf-8 utf-8
65005 utf-32 utf-32

Puedes ver las codificaciones del sistema en la pagina MSDN

También puedes ver el código a emplear para obtener un listado con las codificaciones del sistema en:

Ahora sabemos que usando el método [Encoding.GetEncoding (código de pagina)] podemos generar el objeto [System.Text.Encoding] que corresponde a ese código de pagina, por lo que tenemos el problema resuelto. Ahora podemos crear un objeto [System.Text.Encoding] a partir de un código de pagina (o de su nombre)

Para mas información puedes mirar la siguiente dirección que es de donde he copiado y adaptado el código final de este ejemplo.

'---------------------------------------------------------------
'Encoding.GetEncodings (Método) 
'Devuelve una matriz que contiene todas las codificaciones. 
 'http://msdn.microsoft.com/es-es/library/system.text.encoding.getencodings.aspx
'---------------------------------------------------------------
'Dim pageCode As Integer = 28591 ' ISO-8859-1 (europa occidental)
Dim pageCode As Integer = 1250 '  Windows-1250
'----------------------------------------------------------------
'http://msdn.microsoft.com/es-es/library/ms149359.aspx
' Create an encoding, which is equivalent to calling the 
' ASCIIEncoding class constructor. 
' The EncoderReplacementFallback parameter specifies that the 
' string, "(unknown)", replace characters that cannot be encoded. 
' A decoder replacement fallback is also specified, but in this 
' code example the decoding operation cannot fail.  

Dim erf As New System.Text.EncoderReplacementFallback("(unknown)")
Dim drf As New System.Text.DecoderReplacementFallback("(error)")
' Dim ae As System.Text.Encoding = System.Text.Encoding.GetEncoding("us-ascii", erf, drf)
Dim ae As System.Text.Encoding = System.Text.Encoding.GetEncoding(pageCode, erf, drf)
'---------------------------------------

↑↑↑

A.2.Enlaces

[Para saber mas]
[Grupo de documentos]
[Documento Index]
[Documento Start]
[Imprimir el Documento]

↑↑↑

A.3.Información del documento

Título
System.Text.Encoding
Autor
Contenido del documento
Este articulo describe la forma en la que se puede utilizar cualquier codificación de caracteres con la clase System.Text.Encoding sin estar limitados a los métodos estándar que ofrece [UTF-7, UTF-8, UTF-16 (Unicode), UTF-32, ASCII, BigEndianUnicode]
Archivado en:
informática\lenguajes\NET\System\Text
Fechas
Fecha Creación
2010-01-01T00:15:53 [viernes, 01 de enero de 2010 a las 0:15:53 horas]
Fecha Publicación
2010-01-01T00:15:53 [viernes, 01 de enero de 2010 a las 0:15:53 horas]
Fecha de la última actualización en disco
Fecha última Modificación
2010-01-01T00:15:53 [viernes, 01 de enero de 2010 a las 0:15:53 horas]
Naturaleza del recurso
Text
IMT (Internet Media Type)
text/xhtml+xml
Juego de caracteres)
ISO 8859-1
Idioma
es-ES [es = Español] [ES = España]
Copyright
Texto con los derechos
© Copyright Joaquin 'jms32®' Medina Serrano 1.997-2010 - Reservados todos los derechos.
Información obtenida con JavaScript
Situación de ESTE documento en la red
¿ Quien ha llamado a ésta página ?
Navegador empleado para ver ésta página
© 1997 - - La Güeb de Joaquín
Joaquin Medina Serrano
Ésta página es española