utf8 reemplazar mostrar especiales caracteres acentos php utf-8 character-encoding locale diacritics

reemplazar - mostrar acentos en php



Convertir los caracteres acentuados a sus equivalentes ascii simples (5)

Aquí está la forma de wordpress:

http://codex.wordpress.org/Function_Reference/remove_accents

Puede copiar la función remove_accents () e implementarla en su sistema.

https://core.trac.wordpress.org/browser/tags/3.9.1/src/wp-includes/formatting.php#L682

Tengo que convertir los caracteres franceses al inglés en mi php. He usado el siguiente código:

iconv("utf-8", "ascii//TRANSLIT", $string);

Pero el resultado para ËËË fue "E"E"E

No necesito esa comilla doble y otros caracteres adicionales, quiero mostrar una salida como EEE . ¿Hay algún otro método para convertir el francés al inglés? ¿Puedes ayudarme a hacer esto?


El Manual de PHP iconv Intro tiene una advertencia:

Tenga en cuenta que la función iconv en algunos sistemas puede no funcionar como espera. En tal caso, sería una buena idea instalar la biblioteca libiconv de GNU. Lo más probable es que termine con resultados más consistentes.

Pero si los caracteres acentuados son el único problema, podría usar un strtr sucio (parcialmente de los comentarios de strtr ):

$string = ''Ë À Ì Â Í Ã Î Ä Ï Ç Ò È Ó É Ô Ê Õ Ö ê Ù ë Ú î Û ï Ü ô Ý õ â û ã ÿ ç''; $normalizeChars = array( ''Š''=>''S'', ''š''=>''s'', ''Ð''=>''Dj'',''Ž''=>''Z'', ''ž''=>''z'', ''À''=>''A'', ''Á''=>''A'', ''Â''=>''A'', ''Ã''=>''A'', ''Ä''=>''A'', ''Å''=>''A'', ''Æ''=>''A'', ''Ç''=>''C'', ''È''=>''E'', ''É''=>''E'', ''Ê''=>''E'', ''Ë''=>''E'', ''Ì''=>''I'', ''Í''=>''I'', ''Î''=>''I'', ''Ï''=>''I'', ''Ñ''=>''N'', ''Ń''=>''N'', ''Ò''=>''O'', ''Ó''=>''O'', ''Ô''=>''O'', ''Õ''=>''O'', ''Ö''=>''O'', ''Ø''=>''O'', ''Ù''=>''U'', ''Ú''=>''U'', ''Û''=>''U'', ''Ü''=>''U'', ''Ý''=>''Y'', ''Þ''=>''B'', ''ß''=>''Ss'',''à''=>''a'', ''á''=>''a'', ''â''=>''a'', ''ã''=>''a'', ''ä''=>''a'', ''å''=>''a'', ''æ''=>''a'', ''ç''=>''c'', ''è''=>''e'', ''é''=>''e'', ''ê''=>''e'', ''ë''=>''e'', ''ì''=>''i'', ''í''=>''i'', ''î''=>''i'', ''ï''=>''i'', ''ð''=>''o'', ''ñ''=>''n'', ''ń''=>''n'', ''ò''=>''o'', ''ó''=>''o'', ''ô''=>''o'', ''õ''=>''o'', ''ö''=>''o'', ''ø''=>''o'', ''ù''=>''u'', ''ú''=>''u'', ''û''=>''u'', ''ü''=>''u'', ''ý''=>''y'', ''ý''=>''y'', ''þ''=>''b'', ''ÿ''=>''y'', ''ƒ''=>''f'', ''ă''=>''a'', ''î''=>''i'', ''â''=>''a'', ''ș''=>''s'', ''ț''=>''t'', ''Ă''=>''A'', ''Î''=>''I'', ''Â''=>''A'', ''Ș''=>''S'', ''Ț''=>''T'', ); //Output: E A I A I A I A I C O E O E O E O O e U e U i U i U o Y o a u a y c echo strtr($string, $normalizeChars);


En laravel, simplemente puede usar str_slug($accentedPhrase) y si le importa el guión (-) que este método sustituye con espacio, puede usar str_replace(''-'', '' '', str_slug($accentedPhrase))


Esto me funcionó para los personajes franceses.

$str = utf8_encode($str); $str = iconv(''UTF-8'', ''ASCII//TRANSLIT'', $str);


Una alternativa:

function replaceAccents($str) { $search = explode(",","ç,æ,œ,á,é,í,ó,ú,à,è,ì,ò,ù,ä,ë,ï,ö,ü,ÿ,â,ê,î,ô,û,å,ø,Ø,Å,Á,À,Â,Ä,È,É,Ê,Ë,Í,Î,Ï,Ì,Ò,Ó,Ô,Ö,Ú,Ù,Û,Ü,Ÿ,Ç,Æ,Œ"); $replace = explode(",","c,ae,oe,a,e,i,o,u,a,e,i,o,u,a,e,i,o,u,y,a,e,i,o,u,a,o,O,A,A,A,A,A,E,E,E,E,I,I,I,I,O,O,O,O,U,U,U,U,Y,C,AE,OE"); return str_replace($search, $replace, $str); } $str = "À é ü ä ç"; $str = replaceAccents($str); echo "$str /n"; //output "A e u a c"