Vertin 0 Denunciar post Postado Julho 20, 2011 Galera, estou com um problema. Tive a necessidade de usar uma função pra converter letras pra maiúsculas, já que só o strtoupper não convertia os queridos acentos que a nossa lingua tem. a função que uso é esta: <?php function upper ($str) { $LATIN_UC_CHARS = "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝ°°ª"; $LATIN_LC_CHARS = "àáâãäåæçèéêëìíîïðñòóôõöøùúûüý°ºª"; $str = strtr ($str, $LATIN_LC_CHARS, $LATIN_UC_CHARS); $str = strtoupper($str); return $str; } ?> ok, funcionando, inclusive aqueles caracteres especiais "°°ª" tive que que colocar porque eles estavam se transformando em outro caractere estranho. Mas enfim, o problema que encontrei é que quando eu digito no campo que uso esta função a letra "Ú", ele transforma ela em "Ê", e quando digito ú, ele transforma nisso: ð Por exemplo, se quero digitar JÚNIOR, ele transforma em JÊNIOR. Já tentei arrumar e não consegui, alguém tem idéia de como arrumar esse erro? Desde já, obrigado. Héverton Compartilhar este post Link para o post Compartilhar em outros sites
lambrusco 3 Denunciar post Postado Julho 20, 2011 Você está usando o arquivo em Uft8 ou ISO-8859 ??? tente passar o arquivo para ANSI ou ISO-8859-1 use essa função caso queira manter em utf8 function utf8($texto){ $acentos = array("á", "à", "â", "ã", "ä", "é", "è", "ê", "ë", "í", "ì", "î", "ï", "ó", "ò", "ô", "õ", "ö", "ú", "ù", "û", "ü", "ç", "Á", "À", "Â", "Ã", "Ä", "É", "È", "Ê", "Ë", "Í", "Ì", "Î", "Ï", "Ó", "Ò", "Ô", "Õ", "Ö", "Ú", "Ù", "Û", "Ü", "Ç"); $utf8 = array("á","à ","â","ã","ä","é","è","ê","ë","Ã","ì","î","ï","ó","ò","ô","õ","ö","ú","ù","û","ü","ç","Ã","À","Â","Ã","Ä","É","È","Ê","Ë","Ã","ÃŒ","ÃŽ","Ã","Ó","Ã’","Ô","Õ","Ö","Ú","Ù","Û","Ãœ","Ç"); $result = str_replace($utf8, $acentos, $texto); return $result; } Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Julho 20, 2011 coloca no inicio do arquivo //define a codificação de caracteres header("Content-Type: text/html; charset=ISO-8859-1",true); e depois use a função strtoupper $string = "aeioúéáípagyjk"; echo strtoupper($string); Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Julho 20, 2011 iconv <?php echo strtoupper( iconv( 'UTF-8', 'ISO-8859-1//TRANSLIT', 'àáâãäåæçèéêëìíîïðñòóôõöøùúûüý°ºª' ) ); // ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝ°ºª ?> Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Julho 21, 2011 http://php.net/mb_strtoupper Compartilhar este post Link para o post Compartilhar em outros sites
Vertin 0 Denunciar post Postado Julho 21, 2011 obrigado. Mas tentei todas essas formas e sempre tem problema em algum acento. Eu estou achando que o problema é porque meu form é enviado por ajax, com jquery.post alguém tem idéia de como resolver? Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Julho 21, 2011 no post #2 o @lambrusco perguntou sobre qual encoding está usando se puder explicar, alguém poderá ajudá-lo Compartilhar este post Link para o post Compartilhar em outros sites
Vertin 0 Denunciar post Postado Julho 21, 2011 tenho o arquivo php com charset: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> e nele tem: $.post("include/ajax-socios-inserir-enderecos.php", { campos aqui } e o arquivo ajax-socios-inserir-enderecos.php não tem charset nenhum. dentro dele tem as variáveis que recebe os valores: if(isset($_POST["bairro"])) $bairro = upper($_POST["bairro"]); essa função upper é a que postei no primeiro post, que está em um include. Compartilhar este post Link para o post Compartilhar em outros sites
lambrusco 3 Denunciar post Postado Julho 21, 2011 tente colocar utf8_decode ou utf8_encode onde faz o recebimento da variável com problema. Compartilhar este post Link para o post Compartilhar em outros sites
Artur Luiz 0 Denunciar post Postado Julho 21, 2011 Verifique a codificação que os arquivos foram salvos. Compartilhar este post Link para o post Compartilhar em outros sites