8

estoy buscando un método o una tabla de conversión que sepa cómo convertir diéresis y caracteres especiales a su representación más probable en ascii.Convertir caracteres especiales (es decir, Umlaut) a la representación más probable en ascii

Ejemplo:

Ärger = aerger 
Bôhme = bohme 
Søren = soeren 
pjérà = pjera 

Cualquier persona alguna idea?

actualización: Aparte de la buena respuesta aceptada, también encontré PECLs Normalizer a ser bastante interesante, aunque no puedo usarlo, debido a que el servidor no tenerlo y no ser cambiado para mí.

También echa un vistazo a this Question si las respuestas aquí no te ayudan lo suficiente.

+0

respuesta es: echo iconv ('UTF-8', 'ASCII// TRANSLIT ', $ string); – Palantir

+0

Oh, no encontré esa respuesta duplicada. ¿Cuál es la política? ¿Borro mi pregunta ahora o me enlace a la otra pregunta? –

+1

Bienvenido a Stack Overflow. Esta pregunta ya está vinculada a la otra pregunta y si suficientes moderadores (cinco) votan para cerrarla, se cerrará automáticamente como duplicada. Supongo que no necesitas hacer nada especial ahora. – Palantir

Respuesta

15

encuentro iconv totalmente fiable, y me gusta soluciones preg_match y grandes matrices ... así que mi forma favorita es ...

function toASCII($str) 
    { 
     return strtr(utf8_decode($str), 
      utf8_decode('ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ'), 
      'SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy'); 
    } 
+1

Aunque es posible que necesite utilizar matrices ya que "ø" = "oe", no "o": P – neokio

+0

Trid it, funciona muy bien! ¡Muchas gracias! –

Cuestiones relacionadas