4 respuestas
9 mensajes

  • Favorito #1681108

    ruso en asp.net y sql server

    Hola a todos:

    Tengo un pequeño problema con el idioma ruso y es el siguiente. Cuando recupero de la base de datos los caracteres cirilicos todo el rato en la pagina web me los interpreta con caracteres de interrogacion (?). La base de datos la tengo modificado con la intercalacion en Cyrillic_General_100_BIN y esta me la interpreta correctamente, pero cuando lo muestro en la página web siempre esta con las interrogaciones. He provado a poner lo de uiculture, culture, elñ requestencoding, responseencoding pero todo el rato sale con las ?. Parte del codigo de vb es el siguiente:

    Dim cmd_cargar As New ADODB.Command

    cmd_cargar.ActiveConnection = cn

    cmd_cargar.CommandType = ADODB.CommandTypeEnum.adCmdStoredProc

    cmd_cargar.CommandText = "pr_cargar_textos_presentacion"

    Dim prm_idioma As New ADODB.Parameter

    Dim prm_titulo As New ADODB.Parameter

    Dim prm_texto1 As New ADODB.Parameter

    Dim prm_texto2 As New ADODB.Parameter

    Dim prm_texto3 As New ADODB.Parameter

    Dim prm_texto4 As New ADODB.Parameter

    Dim prm_texto5 As New ADODB.Parameter

    prm_idioma = cmd_cargar.CreateParameter("idioma", ADODB.DataTypeEnum.adVarChar, ADODB.ParameterDirectionEnum.adParamInput, 3)

    prm_titulo = cmd_cargar.CreateParameter("titulo", ADODB.DataTypeEnum.adVarChar, ADODB.ParameterDirectionEnum.adParamOutput, 500)

    prm_texto1 = cmd_cargar.CreateParameter("texto1", ADODB.DataTypeEnum.adVarChar, ADODB.ParameterDirectionEnum.adParamOutput, 8000)

    prm_texto2 = cmd_cargar.CreateParameter("texto2", ADODB.DataTypeEnum.adVarChar, ADODB.ParameterDirectionEnum.adParamOutput, 8000)

    prm_texto3 = cmd_cargar.CreateParameter("texto3", ADODB.DataTypeEnum.adVarChar, ADODB.ParameterDirectionEnum.adParamOutput, 8000)

    prm_texto4 = cmd_cargar.CreateParameter("texto4", ADODB.DataTypeEnum.adVarChar, ADODB.ParameterDirectionEnum.adParamOutput, 8000)

    prm_texto5 = cmd_cargar.CreateParameter("texto5", ADODB.DataTypeEnum.adVarChar, ADODB.ParameterDirectionEnum.adParamOutput, 8000)

    prm_idioma.Value = "rus"

    cmd_cargar.Parameters.Append(prm_idioma)

    cmd_cargar.Parameters.Append(prm_titulo)

    cmd_cargar.Parameters.Append(prm_texto1)

    cmd_cargar.Parameters.Append(prm_texto2)

    cmd_cargar.Parameters.Append(prm_texto3)

    cmd_cargar.Parameters.Append(prm_texto4)

    cmd_cargar.Parameters.Append(prm_texto5)

    cmd_cargar.Execute()

    If cmd_cargar("titulo").Value Is DBNull.Value Then

    Else

    lbl_titulo.Text = cmd_cargar("titulo").Value

    lbl_texto1.Text = cmd_cargar("texto1").Value

    lbl_texto2.Text = cmd_cargar("texto2").Value

    lbl_texto3.Text = cmd_cargar("texto3").Value

    lbl_texto4.Text = cmd_cargar("texto4").Value

    lbl_texto5.Text = cmd_cargar("texto5").Value

    End If

    Tengo algun parametro mal? Tengo que cambiar alguna configuracion?

    Muchas gracias a todos

    • Favorito #2061007

      Si con el botón derecho al navegador le dices que interprete…

      Si con el botón derecho al navegador le dices que interprete el texto con otra codificación, ¿consigues resultados?

      ¿Has puesto el tipo de codificación en el código HTML que envías al navegador?

      <

    • Favorito #2061010

      No sale bien el texto, BandaAncha lo interpreta y se lo…

      No sale bien el texto, BandaAncha lo interpreta y se lo carga...

      <meta http-equiv=&quote;Content-Type&quote; content=&quotetext/html; charset=*****************&quote />

      • Favorito #2061338

        Si, debería poder meterse dentro de "código" en el editor,…

        Si, debería poder meterse dentro de "código" en el editor, pero lo elimina igualmente. Se lo voy a comentar a Josh a ver si puede hacer algo.

        El truco momentáneo pasa por dejar espacios en blanco en el código.

        < meta http-equiv=" Content-Type " content=" text/html; charset=***************** " / >

        Te borro los post de 'prueba'.

        Saludos.

    • Favorito #2062252

      Hola a todos: Soy el bocadepez que abrió el post. Tengo…

      Hola a todos:

      Soy el bocadepez que abrió el post. Tengo modificados en la pagina aspx el uiculture y culture por "ru-Ru". Tengo el web.config modificado el globalization con culture="ru-Ru" uiculture="ru-Ru" requestenconding="Unicode" responseEncoding="Unicode".

      Haciendo experimentos lo que he detectado y estoy casi seguro al 100%, que el problema es en el momento que las variables de la pagina web recuperan la información del procedimiento almacenado. En la base de datos se guardan los caracteres en ruso. El procedimiento almacenado ejecutándolo desde el SQLquery también recuperar los caracteres rusos. Si en la web pongo los caracteres ruso directamente también me los muestra y ejecutando paso a paso la web en el momento que recupero los datos del procedimiento almacenado ya aparecen las puñeteras interrogaciones.

      Si alguien sabe donde este mi gran desconocimiento de estos caracteres tan bonitos del cirilico le agradecería mucho que echase un poco de luz sobre este gran agujero.

      Muchas gracias

      • Favorito #2062305

        Hola a todos: Soy el bocadepez que abrió el post. El tema ya…

        Hola a todos:

        Soy el bocadepez que abrió el post. El tema ya esta solucionado. En cuanto termine de comprobar todo os poco lo que e hecho para tener el cirilico funcionando al 100%.

        Un saludo

        • Favorito #2062870

          A mi me matan cosas cómo ésta: If cmd_cargar("titulo").Value…

          A mi me matan cosas cómo ésta:

          If cmd_cargar("titulo").Value Is DBNull.Value Then

          Else

          .......

          ......

          End if

          Saludos.

      • Favorito #2127025

        Hola: Soy el bocadepez que en su día abrió esta discusión. La…

        Hola:

        Soy el bocadepez que en su día abrió esta discusión. La solución fue la siguiente y muy sencilla:

        A la hora de recuperar los datos originalmente lo hacia con ADODB.DataTypeEnum.adVarChar y lo solucione poniendo ADODB.DataTypeEnum.adVarWChar.

        Se que parece una tontería como una catedral, pero solamente fue eso.

        Un saludo gente