Convert special character (i.e. Umlaut) to most li

2019-04-06 11:31发布

问题:

This question already has an answer here:

  • PHP: Replace umlauts with closest 7-bit ASCII equivalent in an UTF-8 string 7 answers

i am looking for a method or maybe a conversion table that knows how to convert Umlauts and special characters to their most likely representation in ascii.

Example:

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

Anyone any idea?

Update: Apart from the good accepted Answer, i also found PECLs Normalizer to be quite interesting, though i can not use it due to the server not having it and not being changed for me.

Also do check out this Question if the Answers here do not help you enough.

回答1:

I find iconv completely unreliable, and I dislike preg_match solutions and big arrays ... so my favorite way is ...

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