Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DH Ferraz

Erro de acentuação ao inserir no MySql

Recommended Posts

Olá a todos, sou novo no fórum!

 

Desculpem criar mais um post sobre o assunto, mas realmente rodei a net toda e nao encontrei uma solução para meu problema.

 

Vamos lá!

 

Tenho uma aplicação em ASP, onde no header dela eu seto "<meta http-equiv="Content-Type" content="text/html; charset=utf-8">", sem essa meta ou com outra qualquer as acentuções das página não funcionam. Ou seja, com essa meta minhas páginas estão 100%, as acentuação estão ok!

 

Porém, em um formulário que tenho, ao inserir seus dados no banco MySql, as acentuações são gravadas de forma errada onde 'é' é gravado como 'é' por exemplo.

 

Buscando uma solução na internet, encontrei aqui mesmo uma apresentada pelo xanburzum que é a seguinte: Usar <%response.Charset="ISO-8859-1"%>. Isso faz com que meu insert no MySql grave as palavras com a acentuação certa, porém, mais uma vez porém, isso danifica as acentuações nas páginas da minha aplicação. Eu nao consigo achar uma solução pra isso, para gravar funciona com ISO-8859-1, mas para as página só funciona com utf-8.

 

Por favor me ajudem!

Compartilhar este post


Link para o post
Compartilhar em outros sites

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"
Response.Charset="ISO-8859-1" %>

 

 

 

Response.CharSet = "ISO-8859-1". No cabeçalho do site coloquei a meta tag <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />, e ao cadastrar qualquer coisa dei um replace nas strings desta forma abaixo.

 

 

e para UTF-8

 

Mudar o head da página que solicita os dados para que ele fique assim

 

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

 

 

Na página que responde os dados colocar isso antes do retorno co conteúdo (logo no topo):

 

<%
Response.AddHeader "Content-Type", "text/html; charset=utf-8"
Response.AddHeader "Pragma", "no-cache"
response.Charset="utf-8"
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

xanburzum, faltou o exemplo do Replace que vc usou

Detalhe, eu não tenho um head específico para minha página de cadastro, estou trabalhando com includes.

Para facilitar a ajuda, segue a minha estrutura.

header.asp

 

header.PNG

 

cad_cliente.asp

 

cad_cliente.PNG

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloca ele dentro do seu head

Compartilhar este post


Link para o post
Compartilhar em outros sites

xanburzum, não estou entendendo...

na sua primeira resposta vc falou que usou um Replace, mas não mostrou ele...

 

Se eu coloco <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> no meu head(que é o mesmo para a aplicação toda) ele ferra toda a aplicação, as acentuações não funcionam.

Compartilhar este post


Link para o post
Compartilhar em outros sites
altere o charset, insira isto 

 

<% Response.AddHeader "Content-Type", "text/html; charset=iso-8859-1" %>

 




			
		

Compartilhar este post


Link para o post
Compartilhar em outros sites

troque a a codificação para UTF-8, que é o novo padrão internacional


<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=UTF-8" />
</head>
</html>


Outra saída é utilizar o padrão de "escape" de caracteres especiais, as chamadas "entidades" do HTML

 

exemplo:

É = É
ç = ç

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido galera, alterei a forma de montar a estrutura do meu HTML, mudei o encoding da base de utf8_general_ci para utf8_unicode_ci.

 

E minha meta ficou:

<meta http-equiv="Content-Type" content="text/xhtml; charset=UTF-8" />

 

Tudo funcionando! o/

 

Obrigado pela ajuda! Té!

Compartilhar este post


Link para o post
Compartilhar em outros sites

única coisa que o utf8_unicode_ci: é um pouquinho mais lento, mas suporta expansões (p. ex. "beta" = "ss")

 

http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.