Estoy tratando de determinar qué factores ambientales u otros tienen una influencia en el resultado de una llamada al iconv()
con la opción TRANSLIT
.¿Qué factores influyen en una conversión satisfactoria de iconv() TRANSLIT?
El siguiente código tiene resultados diferentes para mí localmente cuando se ejecuta a través de Apache y CLI.
<?php
setlocale(LC_ALL, 'en_GB.UTF-8');
header('Content-type: text/html; charset=utf-8'); // for web
$utf8_string = "Pádraig's naïve café";
echo iconv('UTF-8', 'ASCII//IGNORE//TRANSLIT', $utf8_string);
?>
Resultado esperado: Padraig's naive cafe
Resultado en un navegador web: (empty string)
resultado de la CLI: P'adraig's na"ive cafe
En algunos sistemas, hago obtener el resultado esperado, pero no puedo' t atar exactamente por qué.
¿Qué factores influyen en la conversión y qué pasos debo seguir para aumentar las posibilidades de obtener un buen resultado?
Su archivo fuente debe guardarse como un archivo utf-8. De lo contrario, su cadena no será en realidad utf-8 aunque le está diciendo a iconv que sí. – ontrack
El archivo se guarda como UTF-8. – drewm
¿Con qué sistemas obtiene el resultado correcto, no? ¿Cambia si se trata de un servidor Linux/Windows? – James