Foros del Web » Programando para Internet » PHP »

escapeshellarg() me elimina las ñ

Estas en el tema de escapeshellarg() me elimina las ñ en el foro de PHP en Foros del Web. la funcion escapeshellarg() me esta eliminando las ñ asi sin mas estoy en linux no encuentro porque puede ser alguna idea. gracias y saludos...
  #1 (permalink)  
Antiguo 29/04/2016, 14:12
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años
Puntos: 10
escapeshellarg() me elimina las ñ

la funcion escapeshellarg() me esta eliminando las ñ asi sin mas estoy en linux no encuentro porque puede ser alguna idea.
gracias y saludos
  #2 (permalink)  
Antiguo 29/04/2016, 15:13
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: escapeshellarg() me elimina las ñ

Que extraño, acabo de probar lo que mencionas y no sucede como dices:
Código PHP:
Ver original
  1. echo escapeshellarg('ñ'); // ñ

Funciona perfecto.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 29/04/2016, 15:41
Avatar de kip13  
Fecha de Ingreso: agosto-2011
Mensajes: 167
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: escapeshellarg() me elimina las ñ

Intenta probar esta linea de código.

Código PHP:
  setlocale (LC_CTYPE'es_ES.UTF-8'); 
o esta
Código PHP:
 setlocale(LC_CTYPE"en_US.UTF-8"); 
Nos avisas como te fue.

Saludos

Última edición por kip13; 29/04/2016 a las 15:47
  #4 (permalink)  
Antiguo 29/04/2016, 16:10
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 3 meses
Puntos: 11
Respuesta: escapeshellarg() me elimina las ñ

Si tienes problemas de codificación de caracteres, tienes que cambiar toda la codificación de caracteres de apache, php, mysql, html:

En apache:

[httpd.conf]

AddDefaultCharset utf-8
en algunas versiones de apache no se encuentra AddDefaultCharset en el lugar habitual y tienes que buscar $cfg['DefaultCharset'] = ''; en toda la instalacion o variables similares y cambiarla por $cfg['DefaultCharset'] = 'utf-8';

En php:

[php.ini]

default_charset = "utf-8"
mbstring.internal_encoding=utf-8
mbstring.http_output=UTF-8
mbstring.encoding_translation=On
mbstring.func_overload=0
Si estas usando una versión superior o igual a php 5.6 estos parametros estan obsoletos:

mbstring.internal_encoding
mbstring.http_input
mbstring.http_output
y basta con poner default_charset = "utf-8"

Si usas mysql toda la collation de Base de datos y tablas debe ser utf8 - utf8_spanish_ci y en la conexión:

Código PHP:
Ver original
  1. $Conex=new mysqli(.....);
  2. $Conex->set_charset("utf8");
Por ultimo tus html debe tambien configurar el utf8 con la siguiente linea:

Código PHP:
Ver original
  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Esto funcionara perfectamente en linux pero si usas windows y tratas de escribir archivos a disco veras que no funciona (porque windows usa otra codificacion). Es entonces cuando hay que recurrir al gran repertorio de funciones que tiene PHP para codificación de caracteres, en este caso iconv. Ejemplo: al escribir en disco;

Código PHP:
Ver original
  1. $nombre="ññ.txt"
  2.     $f2=fopen(iconv("UTF-8", "ISO-8859-1",$nombre),"w");
  3.     fwrite($f2,$texto);
  4.     fclose($f2);
ó al leer de disco;

Código PHP:
Ver original
  1. $tam=filesize(iconv("UTF-8", "ISO-8859-1",$nombre));

Etiquetas: Ninguno
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 08:00.