Jump to content


Photo

Remover Ou Adicionar Acentos Em Uma Mensagem


  • Faça o login para participar
8 replies to this topic

#1 RodrigoMataoBR

RodrigoMataoBR

    Turista

  • Usuários
  • 38 posts
  • Sexo:Masculino

Posted 08/01/2009, 15:27

Olá. Tenho um site com um RSS feed, acontece que esse feed não mostra os acentos.

Por exemplo "O pão de açúcar é um bom mercado" mostra "O po de acar um bom mercado"

Como corrigir isso?

Abrindo o rss.php eu achei:
$gametitle = ereg_replace("[^a-zA-Z0-9 ]", "", $gametitle);
$gametitle2 = make_friendly($gametitle);
$gamedescription = stripslashes($row['gamedesc']);
$gamedescription = ereg_replace("[^a-zA-Z0-9 ]", "", $gamedescription);

Provavelmente é aqui "[^a-zA-Z0-9 ]" que está o problema, mas já tentei de tudo (php.net, regular-expressions.info..) mas não sei o que fazer!

Me ajudem, meu conteúdo está sendo agregado por sites com o feedsearch.com.br e o ditt.com.br mas as mensagens estão saindo "erradas"


Desde já agradeço

#2 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 08/01/2009, 18:13

:ponder:

Está claro que a sua expressão remove todos os acentos. Sou fraco com expressões regulares, mas vou dar um palpite...

[^A-Za-zÀ-ú0-9 ]

(ok2)
att,
Muller Dias
ex-administrador Fórum WMO

#3 RodrigoMataoBR

RodrigoMataoBR

    Turista

  • Usuários
  • 38 posts
  • Sexo:Masculino

Posted 13/01/2009, 02:03

:ponder:

Está claro que a sua expressão remove todos os acentos. Sou fraco com expressões regulares, mas vou dar um palpite...

[^A-Za-zÀ-ú0-9 ]

(ok2)

O problema é que da erro quando eu mudo.
Substitui aquela parte do código pelo que você me falou e deu isso:

A página XML não pode ser exibida
Não é possível exibir a entrada XML usando a folha de estilos XSL. Corrija o erro e clique no botão Atualizar ou tente novamente mais tarde.


--------------------------------------------------------------------------------

Caractere inválido encontrado no texto. Erro ao processar o recurso 'http://xxxxx/rss.php...west_content...


--------------
nada?

Edição feita por: RodrigoMataoBR, 12/01/2009, 12:47.


#4 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 13/01/2009, 03:03

:ponder:

Já tentou mudar o charset?
att,
Muller Dias
ex-administrador Fórum WMO

#5 RodrigoMataoBR

RodrigoMataoBR

    Turista

  • Usuários
  • 38 posts
  • Sexo:Masculino

Posted 13/01/2009, 17:59

Meu site é praticamente todo em iso-8859-1, que aceita acentos. (veja a chart do google webmaster tools: Posted Image)


tentei adicionar
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> no rss.php mas não aceitou, deu erro


ta dificil viu

#6 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 13/01/2009, 20:20

O documento deve estar salvo num outro charset que você está tentando mostrar.

Dê uma verificada nisto, por padrão o Windows salva seus documentos como WIN ANSI (CP1252). Geralmente quando se trabalha com XML, tem que ser UTF-8, que aceita acentos.

[]'s

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#7 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 13/01/2009, 23:07

Mas não é gerado um xml? Então você não pode usar <meta>, o correto é assim:

<?xml version="1.0" encoding="iso-8859-1" ?>

Tem que ser a primeira linha do xml. ;)
att,
Muller Dias
ex-administrador Fórum WMO

#8 RodrigoMataoBR

RodrigoMataoBR

    Turista

  • Usuários
  • 38 posts
  • Sexo:Masculino

Posted 15/01/2009, 10:44

Mas não é gerado um xml? Então você não pode usar <meta>, o correto é assim:

<?xml version="1.0" encoding="iso-8859-1" ?>

Tem que ser a primeira linha do xml. ;)

Abri o rss.php e na linha 74 achei:
$feed = "<?xml version='1.0'?><rss version='2.0'><channel>";

e alterei para

$feed = "<?xml version='1.0' encoding='iso-8859-1'?><rss version='2.0'><channel>";

não recebi nenhum erro e o rss está funcionando normal, porém os acentos ainda não aparecem.
----------------------
editado (adicionado):

além da adição do "encoding='iso-8859-1'?" ao <?xml version='1.0' ?>, também efetuei a mudança do "[^a-zA-Z0-9 ]" pelo "[^A-Za-zÀ-ú0-9 ]" e agora os acentos aparecem.

Obrigado " sem.Ponto, obrigado savior

------------------------------
agora os acentos aparecem, está tudo bonitinho.. mas a pontuação não aparece (ela já não aparecia)

como faço os seguintes caracteres aparecerem:
". : " , ? !" ?

Edição feita por: RodrigoMataoBR, 14/01/2009, 22:26.


#9 Saad

Saad

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 10/02/2010, 00:22

Olá, vi que esta postagem está há muito tempo, porém, vi também que seu site o RSS Feed não está funcionando. Tive o mesmo problema e resolvi da seguinte maneira. "header("Content-type: text/xml; charset=iso-8859-1");" no arquivo rss.php, não esqueça de alterar o config com o código "8859-1".




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq