Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Concat() y caracteres especiales

Estas en el tema de Concat() y caracteres especiales en el foro de Mysql en Foros del Web. Tengo una vista con tres campos que quiero mostrar concatenados en un select html vía php Los campos son Tabla A `idTpObjetivos` int(11) NOT NULL, ...
  #1 (permalink)  
Antiguo 15/04/2010, 10:44
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Concat() y caracteres especiales

Tengo una vista con tres campos que quiero mostrar concatenados en un select html vía php

Los campos son


Tabla A

`idTpObjetivos` int(11) NOT NULL,
`numero` int(11) NOT NULL,
`objetivo` longtext NOT NULL,

DEFAULT CHARSET=utf8;

Tabla B

`idTpObjetivos` int(11) NOT NULL auto_increment,
`tpObjetivos` varchar(45) NOT NULL,

DEFAULT CHARSET=utf8;

Vista
....
CONCAT_WS(' ','tpObjetivos','numero',left(`objetivo`,100)) abstract,
left(`objetivo`,100) objcorto
....

Si usando la conversión de caracteres de php (htmlentities()) muestro "objcorto" se muestran los caracteres especiales (acentos y demás...) correctamente, en cambio si muestro "abstract" aparecen caracteres raros!!!

De lo que deduzco que CANCAT y CANCAT_WS cambian el juego de caracteres.

Se les ocurre alguna forma de evitar ese cambio?

Quim
  #2 (permalink)  
Antiguo 15/04/2010, 15:15
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Concat() y caracteres especiales

Quim,
aunque esta pregunta no debería hacerla en este foro, ¿estás usando el parámetro charset adecuado (utf-8) de la función htmlentities?
  #3 (permalink)  
Antiguo 16/04/2010, 02:43
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Concat() y caracteres especiales

El problema es que estoy usando un objeto php para generar los select, luego me interesa hacer lo mismo en cualquiera de ellos, si de la bbdd me llegan distintas codificaciones se me crea un problema. La única diferencia en este caso es el concat....

Si no hay mas remedio puedo agregar un parametro al objeto indicando que debe hacer con el juego de caracteres...

Quim

Nota... igual con un CAST(CONCAT(...) AS CHAR CHARACTER SET utf8 ) ahora no puedo probarlo.

Última edición por quimfv; 16/04/2010 a las 03:03
  #4 (permalink)  
Antiguo 16/04/2010, 09:18
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Concat() y caracteres especiales

Código MySQL:
Ver original
  1. CONVERT(concat_ws(_utf8' ',`tpcompetencias`.`tpCompetencias`,`competencias`.`numero`,`competencias`.`letra`,left(`competencias`.`competencia`,100),_utf8'...') using utf8) AS `abstrac`

Hecho... por si a alguien le sirve.

Quim

Etiquetas: caracteres, especiales
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 22:41.