none
No me muestra los acentos

    Question

  • Estoy usando SQL Server 2008 Express y tengo problemas con los acentos. Estuve viendo algunas entradas de aca donde hayan tenido el mismo problema y no encontre nada que me lo soucione.

    El problema es que muestra las palabras de esta forma por ejemplo: "Informática", "Sin sección", etc.

    Me estuve fijando en el Management Studio de SQL pero no encontre nada para cambiar la codificacion, ya sea en propiedades o herramientas referidas a juegos de caracteres o algo parecido. Capaz que hay que usar algun SP pero ni idea, espero su ayuda.

    Gracias

    • Edited by Damian E. _ Monday, September 09, 2013 4:31 PM Spam para los buscadores al poner mi sitio
    Wednesday, November 17, 2010 1:38 PM

Answers

  • Hola.

    Ese problema no está en SQL Server, sino en la aplicación que envía la información (o algún punto intermedio que esté transformándolo) o por el contrario, con la aplicación que luego muestra la información. Coloca una traza de profiler, podrás comprobar que estás enviando esas cadenas que luego guardas a la aplicación. Otra prueba, inserta desde Management Studio la cadena con un insert:

    insert into MiTabla (campo) values ('Informática')

    select * from MiTabla

    Lo más común es que estés usando una página de códigos en la aplicación que no es la que se corresponde con la de la intercalación del servidor de bases de datos. Este tema también es muy frecuente cuando se hacen volcados desde orígenes de datos que no son SQL Server.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/

    Wednesday, November 17, 2010 8:12 PM
    Moderator
  • Damian, te comento que cuando he recibido este error verifico que en SQL Server se este recibiendo con UTC8_general_ci, también verifica el charset que estas utilizando en tu aplicación, ve al formulario y en la parte de arriba verifica que estes usando el charset iso-8859-1

    Verifique con un compañero y me comenta que dependiendo de tu configuración del Collation de SQL Server, entonces deberias usar los comandos:

     $nombre="Damían";
     $nombre=utf8_encode($nombre);
    o quizás


    $nombre="Damían";
    $nombre=utf8_decode($nombre);


    Es todo lo que puedo abundar en el tema, esperando que puedas solucionar tu problema. (Esto funciono para mi).

    Saludos,

     


    Willy Taveras.-

    http://itlearn.net

    • Marked as answer by Damian E. _ Thursday, November 18, 2010 4:17 PM
    Thursday, November 18, 2010 1:46 PM
    Moderator

All replies

  • Damian, nos puedes dar más datos ?.

    Que aplicación estas usando ? o tu dices que al hacer select de una tabla en management studio sale nformática ?

    Wednesday, November 17, 2010 1:55 PM
  • ¿Cómo estás insertando esos datos? ¿Si lo haces directamente desde Management Studio también te ocurre?
    Wednesday, November 17, 2010 1:59 PM
  • Hola.

    Ese problema no está en SQL Server, sino en la aplicación que envía la información (o algún punto intermedio que esté transformándolo) o por el contrario, con la aplicación que luego muestra la información. Coloca una traza de profiler, podrás comprobar que estás enviando esas cadenas que luego guardas a la aplicación. Otra prueba, inserta desde Management Studio la cadena con un insert:

    insert into MiTabla (campo) values ('Informática')

    select * from MiTabla

    Lo más común es que estés usando una página de códigos en la aplicación que no es la que se corresponde con la de la intercalación del servidor de bases de datos. Este tema también es muy frecuente cuando se hacen volcados desde orígenes de datos que no son SQL Server.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/

    Wednesday, November 17, 2010 8:12 PM
    Moderator
  • 1) Bueno realice lo del insert y luego select desde el Management Studio y ahi si que me guarda los datos con los acentos como yo quiero.

    2) También lance lo que me pasan:

    Alter Database Glosario

    Collate SQL_Latin1_General_CP1_CI_AS

    y me tira el siguiente error:

    "Mens. 5030, Nivel 16, Estado 2, Línea 1

    No se puede bloquear de forma exclusiva la base de datos para realizar la operación.

    Mens. 5072, Nivel 16, Estado 1, Línea 1

    Error de la instrucción ALTER DATABASE. La intercalación predeterminada de la base de datos 'Glosario' no se puede establecer en SQL_Latin1_General_CP1_CI_AS."

    3) Les cuento que la inserción de los datos lo realizo localmente por intermedio de php y es ahí en donde viendo lo que se ingreso en la BD veo que pone caracteres extraños en los acentos.

    Bueno no se, si necesitan más datos. Saludos.

    • Edited by Damian E. _ Monday, September 09, 2013 4:32 PM
    Thursday, November 18, 2010 12:12 PM
  • Hola.

    Cambiar la intercalación en tu base de datos no va a resolverte el problema (no la has podido completar por una cuestión de bloqueos, eso es otra historia, si necesitas saber cómo hacer este tipo de cambios, nos dices).

    Lo que resolvería el problema es saber qué se le envía al servidor y gestionar ese envío de información para que no haga cambios en los caracteres acentuados. Como has visto, cuando al servidor se le manda bien la información, la almacena bien.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/

    Thursday, November 18, 2010 12:24 PM
    Moderator
  • Entonces como lo soluciono, que debo cambiar para que me tome los acentos. Desde php es solo un insert común y corriente como lo hice en el Management Studio.

    Me estoy fijando en las propiedades de la página en donde hago los inserts a la base y la codificación está como UNICODE (UTF-8), no se si tiene algo que ver.

    Espero su ayuda así puedo resolver esto de los acentos. Saludos.

    • Edited by Damian E. _ Monday, September 09, 2013 4:33 PM
    Thursday, November 18, 2010 12:33 PM
  • Probe lo que me mandas en el primer caso me guarda Informática como:"Inform%C3%A1tica"

    Luego tambien realice la segunda opcion y me tira el siguiente error:

    Warning: pg_set_client_encoding(): supplied resource is not a valid PostgreSQL link resource...

    • Edited by Damian E. _ Monday, September 09, 2013 4:33 PM
    Thursday, November 18, 2010 1:07 PM
  • Damian, te comento que cuando he recibido este error verifico que en SQL Server se este recibiendo con UTC8_general_ci, también verifica el charset que estas utilizando en tu aplicación, ve al formulario y en la parte de arriba verifica que estes usando el charset iso-8859-1

    Verifique con un compañero y me comenta que dependiendo de tu configuración del Collation de SQL Server, entonces deberias usar los comandos:

     $nombre="Damían";
     $nombre=utf8_encode($nombre);
    o quizás


    $nombre="Damían";
    $nombre=utf8_decode($nombre);


    Es todo lo que puedo abundar en el tema, esperando que puedas solucionar tu problema. (Esto funciono para mi).

    Saludos,

     


    Willy Taveras.-

    http://itlearn.net

    • Marked as answer by Damian E. _ Thursday, November 18, 2010 4:17 PM
    Thursday, November 18, 2010 1:46 PM
    Moderator
  • Bueno solo agregue la instrucción:

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

    en una de las páginas y ahora si me funciona.

    Seguramente lo tengo que realizar en todas las páginas y también verificar que pasa con el servidor, ya que esto lo realizo localmente, por eso le tendre que decir a los del hosting que pongan esta codificación.

    El tema es que tengo todo el sitio como UNICODE (UTF-8) y no se que va a pasar en la página cuande este en Internet y lo cambie a iso-8859-1

    De momento con este cambio de codificación me funciona localmente. Gracias y saludos.

    • Edited by Damian E. _ Monday, September 09, 2013 4:33 PM
    Thursday, November 18, 2010 4:17 PM