[SOLUCIONADO]El text del tree panel
Hola mi problema es el siguiente, a la hora de desplegar un treepanel con los archivos que tengo en el servidor , el text solo lo pone bien si no contiene ni tildes ni ñ , si contiene alguna solo lo pone hasta la letra antes de la tilde o la ñ, quisiera saber como poder poner el nombre completo, cualquier ayuda seria buena
Gracias
en el phph pongo esto:
setlocale(LC_ALL, "es_ES@euro", "es_ES", "esp");
$root = 'files/';
$node = isset($_REQUEST['node'])?$_REQUEST['node']:"";
if(strpos($node, '..') !== false){
die('Nice try buddy.');
}
$nodes = array();
$d = dir($root.$node);
while($f = $d->read()){
if($f == '.' || $f == '..' || substr($f, 0, 1) == '.')continue;
if(is_dir($root.$node.'/'.$f)){
array_push($nodes,array("text"=> $f, "id"=>$node.'/'.$f));
}else{
array_push($nodes, array("text"=> $f, "id"=>$node.'/'.$f, 'leaf'=>true,'iconCls'=>getIcon($f)));
}
}
$d->close();
echo json_encode($nodes);
function getIcon($name){
if (preg_match("/\.png$/", $name) || preg_match("/\.jpg$/", $name) || preg_match("/\.gif$/", $name)) {
return 'jpg-icon';
}else if (preg_match("/\.xls$/", $name) || preg_match("/\.xlsx$/", $name)) {
return 'xls-icon';
}else if (preg_match("/\.ppt$/", $name) || preg_match("/\.pptx$/", $name)) {
return 'ppt-icon';
}else if (preg_match("/\.doc$/", $name) || preg_match("/\.docx$/", $name)) {
return 'doc-icon';
}else if (preg_match("/\.html$/", $name) || preg_match("/\.htm$/", $name)) {
return 'html-icon';
}else if (preg_match("/\.pdf$/", $name)) {
return 'pdf-icon';
}else{
return 'unknow-icon';
}
}
y hasta probe con ponerle esto a la $f
$trans = array("ñ"=>"ń" , "Ñ"=>"&Nacute" , "á"=>"ã" , "é"=>"&etilde;" , "í"=>"ĩ" , "ó"=>"õ" , "ú"=>"ũ");
strtr($f,$trans )
y hasta en convertirla en string peo nada
y este es el js:
var tree = new Ext.tree.TreePanel({
region:'west',
title:'Files',
width:130,
split:true,
collapsible:true,
border: false,
autoScroll:true,
dataUrl:'get-files.php',
root: new Ext.tree.AsyncTreeNode({
id:'.',
text: 'User files'
})
});
si el problema es como te devuelve las "ñ", después de hacer la conexión con tu base de datos también puedes agregarle
mysql_query("SET NAMES 'utf8'");
a tu código
En si no es una conexión a la base de datos, lo que estaba haciendo era mostrando los archivos del servidor y ya con el utf8_encode se soluciono, de todas formas gracias por las respuestas tan rápidas y por la preocupación.
no solo debes colocar lo que te menciona @Lgonzales sino que ademas la codificación de tu archivo html debe ser utf-8 con BOM
Gracias por la respuesta pero en si no comprendo lo que me dices , si puedes explicarme un poco mas y poner algún código para comprender te estaría muy agradecido
¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook
Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.