Yii Framework Forum: CHtml::encode error de htmlspecialchars - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

CHtml::encode error de htmlspecialchars Invalid multibyte sequence in argument Rate Topic: -----

#1 User is offline   netbur 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 42
  • Joined: 03-June 09

Posted 26 April 2010 - 05:15 AM

Saludos :

En mi aplicación los comentarios con más de 600 caracteres se muestran parcialmente, si el usuario quiere ver más pulsa un boton ajax que muestra el resto del contenido.

Mi problema es que se produce un error al mostrar el contenido cortado :

<?php 
if($cortar){
	$comentario=substr($comentario,0,600);
 	echo nl2br(CHtml::encode($comentario));
}else{
 	echo nl2br(CHtml::encode($comentario)); 
}?>


Por lo que he podido averiguar, CHtml::encode usa htmlspecialchars pero el contenido de este debe venir en UTF8 y parece que lo que le estoy pasando no está bien codificado, ya que este código muestra lo que quiero pero mal codificado :

<?php 
if($cortar){
	$comentario=substr($comentario,0,600);
 	echo nl2br(CHtml::encode(utf8_encode($comentario)));
}else{
 	echo nl2br(CHtml::encode($comentario)); 
}?>


Podeís ver este comportamiento en los comentario de :
http://www.ciudadred...o/?f=2010-04-22

El problema es que no ocurre siempre, aquí podeís ver que funciona correctemente sin el ut8_encode:

http://www.ciudadred...tura/comentario

Muchas Gracias
0

#2 User is offline   sebas 

  • Advanced Member
  • Yii
  • Group: Yii Dev Team
  • Posts: 496
  • Joined: 28-October 08
  • Location:Buenos Aires, Argentina

Posted 26 April 2010 - 08:14 AM

Yo no uso el CHtml::encode... utilizo el htmlentities de PHP...


Sino antes utiliza el utf8_encode pero también fijate que la conexión a la BD este en UTF8 y que las tablas de la BD esten en utf8...

Como seguramente vas a querer buscar en la base el utf8 que te combiene usar es el utf8_unicode_ci

Saludos,
0

#3 User is offline   netbur 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 42
  • Joined: 03-June 09

Posted 29 April 2010 - 05:09 AM

De momento he quitado el CHtml::encode y me lo muestra sin problema, tengo que hacer una migración de la base de datos, ya que el campo en cuestión está en latin1_swedish_ci aunque tengo toda la aplicación en UTF-8.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users