função strtoupper() não converte letras com acentos

611 views
Skip to first unread message

Wilson C. Savegnago

unread,
Oct 25, 2006, 8:42:42 AM10/25/06
to list...@googlegroups.com
Olá Pessoal
 
Estou usando a função strtoupper(); pra colocar os resultados de uma consulta em MAIúSCULO, entretanto, onde tem acentos e ç ele nao converte.
 
alguem tem solução pra isso?
abç
 
Wilson

Matheus Eduardo

unread,
Oct 25, 2006, 9:52:38 AM10/25/06
to list...@googlegroups.com
---
engraçado... aqui funcionou normal...

o teste:

$teste = "açúcar é bom";
echo $teste . "<br>";
$teste = strtoupper($teste);
echo $teste;

resultado:

açúcar é bom
AÇÚCAR É BOM

alguém com o mesmo problema?

Giovani Marin

unread,
Oct 25, 2006, 9:59:21 AM10/25/06
to list...@googlegroups.com
setu for trabalhar com o bando, tenta dar o upper no sql...
se não...usa essas funções aqui...

function retiraAcentos( $sPalavra ){

        for( $i=0; $i < count( $sPalavra ); $i++ )
        {
        $a = $sPalavra[$i];
        $busca = array( "á","à","â","ã","é","è","ê","í","ì","î","ó","ò","ô","ú","ù","û"," ","Á","À","Â","Ã","É","È","Ê","Í","Ì","Î","Ó","Ò","Ô","Ú","Ù","Û" );
        $valores = array( "1a","2a","3a","4a","1e","2e","3e","1i","2i","3i","1o","2o","3o","1u","2u","3u","+","1A","2A","3A","4A","1E","2E","3E","1I","2I","3I","1O","2O","3O","1U","2U","3U" );
        $sNovaPalavra = str_replace( $busca, $valores, $a );
       
        }
       
        return ( $sNovaPalavra );
    }
   
    function colocaAcentos( $sPalavra ){

        for( $i=0; $i < count( $sPalavra ); $i++ )
        {
        $a = $sPalavra[$i];
        $valores = array( "á","à","â","ã","é","è","ê","í","ì","î","ó","ò","ô","ú","ù","û"," ","Á","À","Â","Ã","É","È","Ê","Í","Ì","Î","Ó","Ò","Ô","Ú","Ù","Û" );
        $busca = array( "1a","2a","3a","4a","1e","2e","3e","1i","2i","3i","1o","2o","3o","1u","2u","3u","+","1A","2A","3A","4A","1E","2E","3E","1I","2I","3I","1O","2O","3O","1U","2U","3U" );
        $sNovaPalavra = str_replace( $busca, $valores, $a );
       
        }
       
        return ( $sNovaPalavra );
    }


ae passa pra maiuscula sem acento...e depois coloca denovo
vlw!

2006/10/25, Matheus Eduardo <matheused...@gmail.com>:



--
Giovani Marin
48 - 99296251
skype: gcmarin
msn: giovan...@hotmail.com
Florianópolis - SC

Daniel Freire

unread,
Oct 25, 2006, 10:19:30 AM10/25/06
to list...@googlegroups.com
Giovani, naum saquei a logica pra colocar os acentos novamente... como q a sua funcao vai distinguir o cedilha vai no aÇucar e naum no acuÇar? Entendeu a minha duvida?

[]'s



2006/10/25, Giovani Marin <giovan...@gmail.com>:



--
==
Daniel C. Freire
ICQ: 57596276
MSN: absynt...@hotmail.com

Giovani Marin

unread,
Oct 25, 2006, 10:27:43 AM10/25/06
to list...@googlegroups.com
mas ela não ta tratando "ç", é só acentos e não caracteres especiais... onde tem "ç" ali?

2006/10/25, Daniel Freire <danie...@gmail.com >:

Daniel Freire

unread,
Oct 25, 2006, 10:32:05 AM10/25/06
to list...@googlegroups.com
sim, mas o q eu to falando eh como q ele vai saber, numa palavra com dois 'as', por exemplo, qual eh o acentuado, sacou? Por exemplo áhfggjra, como a funcao q recupera acentos vai colocar no primeiro A?

Giovani Marin

unread,
Oct 25, 2006, 10:35:24 AM10/25/06
to list...@googlegroups.com
Se vc notar...a primeira função...transforma o á em 1a
na hora de voltar...e tranforma o 1a em á...
entendeu?

2006/10/25, Daniel Freire < danie...@gmail.com>:

Matheus Eduardo

unread,
Oct 25, 2006, 10:38:16 AM10/25/06
to list...@googlegroups.com
---
On 10/25/06, Daniel Freire <danie...@gmail.com> wrote:
sim, mas o q eu to falando eh como q ele vai saber, numa palavra com dois 'as', por exemplo, qual eh o acentuado, sacou? Por exemplo áhfggjra, como a funcao q recupera acentos vai colocar no primeiro A?

usando essas funções, ele converteria o á pra 2a ... passa pra maiúsculo 2A, converte pra Á...

mas pra num ter q fazer isso tudo, é fazer uma função que, ao invés de á passar pra 2a, já passa pra Á de uma vez.... só trocar aquela segunda string toda...

mas ainda assim... no meu PHP (5) tá aumentando todos caracteres...

Matheus Eduardo

unread,
Oct 25, 2006, 10:45:05 AM10/25/06
to list...@googlegroups.com
---
On 10/25/06, Wilson C. Savegnago <wil...@pzo.com.br> wrote:

baseada nas funções apresentadas, fiz uma...
mas ainda assim acho meio gambiarra...

function str_to_upper( $sPalavra ) {

    for( $i=0; $i < strlen( $sPalavra ); $i++ ) {
        $a = $sPalavra[$i];
        $busca = array("á","à","â","ã","é","è","ê","í","ì","î","ó","ò","ô","õ","ú","ù","û","ç");
        $valor = array("Á","À","Â","Ã","É","È","Ê","Í","Ì","Î","Ó","Ò","Ô","Õ","Ú","Ù","Û","Ç");
        $sNovaPalavra = str_replace($busca, $valor, $a )
    }
    return ( $sNovaPalavra );
}

Lucas Schirm

unread,
Oct 25, 2006, 11:20:35 AM10/25/06
to list...@googlegroups.com
Não precisa do for, str_replace consegue trabalhar com arrays!

2006/10/25, Matheus Eduardo <matheused...@gmail.com>:



--
----------------------------------------------------------------------------
Lucas Schirm Caixeta *Falkor*
MSN - falkor...@gmail.com
                                                    Pirating for life
----------------------------------------------------------------------------

Wilson C. Savegnago

unread,
Oct 25, 2006, 1:01:49 PM10/25/06
to list...@googlegroups.com
O problema está aqui:
Veja a palavra "cosméticos"
 
abç
 
wilson

Paulo Souza

unread,
Oct 25, 2006, 8:29:47 PM10/25/06
to list...@googlegroups.com
uma linha de css resolve...

.str {text-transform:uppercase;}

Matheus Eduardo

unread,
Oct 25, 2006, 8:36:31 PM10/25/06
to list...@googlegroups.com
--

On 10/25/06, Paulo Souza <pepe...@gmail.com> wrote:
uma linha de css resolve...

.str {text-transform:uppercase;}

se for pra manter no db isso num adianta...

Wilson C. Savegnago

unread,
Oct 25, 2006, 7:43:30 PM10/25/06
to list...@googlegroups.com
Realmente. Funcionou. como nao pensei nesse detalhe antes. PROGRAMAÇÃO e LÓGICA DESUNIDOS, É NISSO Q DÁ.
Muito obrigadao Paulo
 
Abç

Paulo Souza

unread,
Oct 25, 2006, 8:49:09 PM10/25/06
to list...@googlegroups.com
Q bom!
Eu sempre digo para a minha equipe que nem tudo se faz necessário utilizando somente "ASP's" ou "PHP's".

=D

[]'s

Lucas Schirm

unread,
Nov 22, 2006, 9:38:16 AM11/22/06
to list...@googlegroups.com
Revivendo a Thread,

 Quando você estava usando isso você estava usando UTF-8 no encode do HTML???

Em 25/10/06, Wilson C. Savegnago < wil...@pzo.com.br> escreveu:
Reply all
Reply to author
Forward
0 new messages