Foros del Web » Programación para mayores de 30 ;) » .NET »

codificacion ISO

Estas en el tema de codificacion ISO en el foro de .NET en Foros del Web. Hola necesito codificar una cadena de texto con caract. ISO. He probado varias formas pero no lo consigo hacer funcionar. Código: Private Function convertirStr (ByVal ...
  #1 (permalink)  
Antiguo 02/12/2009, 08:36
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
codificacion ISO 8859-1

Hola

necesito codificar una cadena de texto con caract. ISO. He probado varias formas pero no lo consigo hacer funcionar.

Código:
    Private Function convertirStr (ByVal str As String) As String
        Dim bytes() As Byte
        Dim enc As New System.Text.ASCIIEncoding()
        bytes = enc.GetBytes(str)
        Dim latin1 = Encoding.GetEncoding(28591)
        bytes = Encoding.Convert(Encoding.UTF8, latin1, bytes)
        str = enc.GetString(bytes)
        Return str
    End Function
esta función me reemplaza los caracteres acentuados por ? Es decir, no me funciona.


En PHP sería esto:

$mensaje=urlencode($mensaje);


pero en VB.NET?

Última edición por freegirl; 18/02/2010 a las 13:20
  #2 (permalink)  
Antiguo 02/12/2009, 13:21
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: codificacion ISO

prueba con httputility.Encode
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #3 (permalink)  
Antiguo 03/12/2009, 04:09
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
Respuesta: codificacion ISO

Sí, los tiros iban por ahí....Y al final encontre la solución! Ejemplo:

Cita:
variableStr = System.Web.HttpUtility.UrlEncode(miTexto, System.Text.Encoding.GetEncoding("ISO-8859-1"))
un saludo
  #4 (permalink)  
Antiguo 03/12/2009, 05:04
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
Respuesta: codificacion ISO

bueno....al final me falla un caracter. El signo + Lo ignora.

Por ejemplo,

si yo escribo: 100 + 40=140

Retorna: 100 40=140


Si miro la cadena codificada a ISO 8859, tiene el siguiente valor:

100%2b40%3d140
  #5 (permalink)  
Antiguo 18/02/2010, 13:20
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
Respuesta: codificacion ISO

Subo el post porque aún no encontré solución a ese problema. A ver si alguien sabe alguna solución de como pasar un +
  #6 (permalink)  
Antiguo 18/02/2010, 14:52
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: codificacion ISO

Es para mostrarlos en una pagina asp.net? O simplemente para pasarlo por URL o algo similar? Siempre puedes pasar el + codificado y el receptor que lo descodifique (con URLEncode y URLDecode).
__________________
Aviso: No se resuelven dudas por MP!
  #7 (permalink)  
Antiguo 19/02/2010, 04:37
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
Respuesta: codificacion ISO

Simplemente es pasar la cadena de texto a esa URL. Debe llegar correctamente codificado.

Esas cadenas de texto llegan codificadas desde varios lenguajes: php, vb.net, java, etc. La puñetera es la vb.net, que no hay manera que me llegue bien codificado. El problema no está en la decoficación porque lo hace OK en todos los lenguajes. Deduzco que no estoy codificando correctamente en VB.NET. Tampoo tengo acceso a la función de decodif. porque eso lo hace el proveedor al que le mando la cadena de texto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:46.