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.ciudadredonda.org/lectura/comentario/?f=2010-04-22
El problema es que no ocurre siempre, aquí podeís ver que funciona correctemente sin el ut8_encode:
http://www.ciudadredonda.org/lectura/comentario
Muchas Gracias