COLAÇÃO NA BASE MYSQL COM ASP CLÁSSICO
Estou com problemas com acentos e cedilha, mas já precebi que o problema está em meu código de iserção de dados no painel de controle, pois já alimentei diretamente a base de dados que está hospedada no servidor Kinghost, e o BD aceita os acentos e cedilhas, e minha consulta também vem com o acento e cedilha. Abaixo o código de formulário de inserção(forminsert.asp) e o código de inserção(inset.asp). Estou usando o callation utf8mb4_general_ci.
forminsert.asp
forminsert.asp
<%
Response.CodePage = 65001
Response.Charset = "utf-8"
Response.AddHeader "Content-Type", "text/html; charset=utf-8"
Response.LCID = 1046 ' Português-Brasil
%>
Cadastro de Imóveis
.style2 { background-color: #999999; }
.style3 { font-weight: bold; background-color: #0833beff; }
.auto-style1 { font-weight: bold; background-color: #0833beff; }
.auto-style2 { background-color: #fcfcfcff; }
input[type="text"], select, textarea {
color: #0000CC;
font-family: Verdana;
font-size: 8pt;
}
input[type="file"] {
width: 352px;
}
function valida_campo() {
var titulo = document.form.titulo.value.trim();
if (titulo == "") {
alert("Entre com o título!");
document.form.titulo.focus();
return false;
}
var dormitorio = document.form.dormitorio.value.trim();
if (dormitorio == "") {
alert("Entre com nº de dormitórios!");
document.form.dormitorio.focus();
return false;
}
var suite = document.form.suite.value.trim();
if (suite == "") {
alert("Entre com nº de suítes!");
document.form.suite.focus();
return false;
}
return true;
}
:: Cadastro de Imóveis ::
Imóvel:
Nº Dormitórios:
Nº Banheiros:
Área do Lote:
Área Construída:
Tipo:
Apartamento
Casa
Chácara
Comercial
Lote
Sítio
Localidade:
Itaipuaçu
Maricá
Niterói
Rio de Janeiro
Outras
Bairro:
Foto :
" size="40">
Preço:
Visibilidade:
Não
Sim
Destaque:
Não
Sim
Descrição:
Proprietário:
Telefone:
Alterado em 05/11/2025 05:02:46
insert.asp
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
Option Explicit
Response.Expires = 0
Response.Charset = "utf-8"
Response.CodePage = 65001
Response.LCID = 1046 ' Português-Brasil
' =====================================
' CONFIGURAÇÃO DO UPLOAD E BANCO MYSQL
' UTF-8 / utf8mb4_general_ci
' =====================================
Dim Upload, File, objConn, strConn, strQuery
Dim titulo, dormitorio, suite, visibilidade, tipo, local, bairro
Dim preco, status, descricao, area, contrucao, proprietario, telefone
Dim fotos(20), i, filePath, fileName, fotoURL
' === CRIA OBJETO DE UPLOAD ===
On Error Resume Next
Set Upload = Server.CreateObject("Persits.Upload")
If Err.Number <> 0 Then
Response.Write "<p style='color:red'><b>? Erro:</b> O componente Persits.Upload não está disponível neste servidor.</p>"
Response.Write "<p>Peça à KingHost para ativar o componente <b>Persits.Upload</b> no seu ambiente ASP.</p>"
Response.End
End If
' === SALVA OS ARQUIVOS NA PASTA /fotos ===
Upload.OverwriteFiles = False
Upload.Save Server.MapPath("/fotos")
' === CAMPOS DO FORMULÁRIO (UTF-8) ===
titulo = Upload.Form("titulo")
dormitorio = Upload.Form("dormitorio")
suite = Upload.Form("suite")
visibilidade = Upload.Form("visibilidade")
tipo = Upload.Form("tipo")
local = Upload.Form("local")
bairro = Upload.Form("bairro")
preco = Upload.Form("preco")
status = Upload.Form("status")
descricao = Upload.Form("descricao")
area = Upload.Form("area")
contrucao = Upload.Form("contrucao")
proprietario = Upload.Form("proprietario")
telefone = Upload.Form("telefone")
' === LÊ AS FOTOS ENVIADAS ===
For i = 1 To 20
On Error Resume Next
Set File = Upload.Files("foto" & i)
If Not File Is Nothing Then
fileName = File.FileName
If fileName <> "" Then
fotoURL = "https://www.jmimoveis.cim.br/fotos/" & File.FileName
fotos(i) = fotoURL
Else
fotos(i) = ""
End If
Else
fotos(i) = ""
End If
Next
' =====================================
' CONEXÃO COM MYSQL (UTF-8)
' =====================================
Set objConn = Server.CreateObject("ADODB.Connection")
' OBS: use o driver UNICODE e charset=utf8mb4
strConn = "Driver={MySQL ODBC 8.0 Unicode Driver};" & _
"Server=mysql.jmimoveis.cim.br;" & _
"Database=jmimoveis;" & _
"Uid=jmimoveis;" & _
"Pwd=******;" & _
"Option=3;CHARSET=utf8mb4;NO_SSPS=1;"
On Error Resume Next
objConn.Open strConn
If Err.Number <> 0 Then
Response.Write "<p style='color:red'><b>? Erro ao conectar ao MySQL:</b> " & Err.Description & "</p>"
Response.End
End If
' Garante UTF-8 ativo na sessão MySQL
objConn.Execute "SET NAMES utf8mb4 COLLATE utf8mb4_general_ci"
objConn.Execute "SET CHARACTER SET utf8mb4"
objConn.Execute "SET collation_connection = 'utf8mb4_general_ci'"
' =====================================
' MONTA E EXECUTA O INSERT
' =====================================
strQuery = "INSERT INTO IMOVEL " & _
"(titulo, dormitorio, suite, visibilidade, tipo, local, bairro, " & _
"foto1, foto2, foto3, foto4, foto5, foto6, foto7, foto8, foto9, foto10, " & _
"foto11, foto12, foto13, foto14, foto15, foto16, foto17, foto18, foto19, foto20, " & _
"preco, status, descricao, area, contrucao, proprietario, telefone) VALUES (" & _
"'" & Replace(titulo,"'","''") & "'," & _
"'" & Replace(dormitorio,"'","''") & "'," & _
"'" & Replace(suite,"'","''") & "'," & _
"'" & Replace(visibilidade,"'","''") & "'," & _
"'" & Replace(tipo,"'","''") & "'," & _
"'" & Replace(local,"'","''") & "'," & _
"'" & Replace(bairro,"'","''") & "'," & _
"'" & Replace(fotos(1),"'","''") & "'," & _
"'" & Replace(fotos(2),"'","''") & "'," & _
"'" & Replace(fotos(3),"'","''") & "'," & _
"'" & Replace(fotos(4),"'","''") & "'," & _
"'" & Replace(fotos(5),"'","''") & "'," & _
"'" & Replace(fotos(6),"'","''") & "'," & _
"'" & Replace(fotos(7),"'","''") & "'," & _
"'" & Replace(fotos(8),"'","''") & "'," & _
"'" & Replace(fotos(9),"'","''") & "'," & _
"'" & Replace(fotos(10),"'","''") & "'," & _
"'" & Replace(fotos(11),"'","''") & "'," & _
"'" & Replace(fotos(12),"'","''") & "'," & _
"'" & Replace(fotos(13),"'","''") & "'," & _
"'" & Replace(fotos(14),"'","''") & "'," & _
"'" & Replace(fotos(15),"'","''") & "'," & _
"'" & Replace(fotos(16),"'","''") & "'," & _
"'" & Replace(fotos(17),"'","''") & "'," & _
"'" & Replace(fotos(18),"'","''") & "'," & _
"'" & Replace(fotos(19),"'","''") & "'," & _
"'" & Replace(fotos(20),"'","''") & "'," & _
"'" & Replace(preco,"'","''") & "'," & _
"'" & Replace(status,"'","''") & "'," & _
"'" & Replace(descricao,"'","''") & "'," & _
"'" & Replace(area,"'","''") & "'," & _
"'" & Replace(contrucao,"'","''") & "'," & _
"'" & Replace(proprietario,"'","''") & "'," & _
"'" & Replace(telefone,"'","''") & "')"
On Error Resume Next
objConn.Execute strQuery
If Err.Number = 0 Then
Response.Write "<p style='color:green'><b>? Imóvel cadastrado com sucesso!</b></p>"
Response.Write "<meta http-equiv='refresh' content='2;URL=selimo_.asp'>"
Else
Response.Write "<p style='color:red'><b>? Erro ao inserir no banco:</b> " & Err.Description & "</p>"
End If
objConn.Close
Set objConn = Nothing
Set Upload = Nothing
%>
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
Option Explicit
Response.Expires = 0
Response.Charset = "utf-8"
Response.CodePage = 65001
Response.LCID = 1046 ' Português-Brasil
' =====================================
' CONFIGURAÇÃO DO UPLOAD E BANCO MYSQL
' UTF-8 / utf8mb4_general_ci
' =====================================
Dim Upload, File, objConn, strConn, strQuery
Dim titulo, dormitorio, suite, visibilidade, tipo, local, bairro
Dim preco, status, descricao, area, contrucao, proprietario, telefone
Dim fotos(20), i, filePath, fileName, fotoURL
' === CRIA OBJETO DE UPLOAD ===
On Error Resume Next
Set Upload = Server.CreateObject("Persits.Upload")
If Err.Number <> 0 Then
Response.Write "<p style='color:red'><b>? Erro:</b> O componente Persits.Upload não está disponível neste servidor.</p>"
Response.Write "<p>Peça à KingHost para ativar o componente <b>Persits.Upload</b> no seu ambiente ASP.</p>"
Response.End
End If
' === SALVA OS ARQUIVOS NA PASTA /fotos ===
Upload.OverwriteFiles = False
Upload.Save Server.MapPath("/fotos")
' === CAMPOS DO FORMULÁRIO (UTF-8) ===
titulo = Upload.Form("titulo")
dormitorio = Upload.Form("dormitorio")
suite = Upload.Form("suite")
visibilidade = Upload.Form("visibilidade")
tipo = Upload.Form("tipo")
local = Upload.Form("local")
bairro = Upload.Form("bairro")
preco = Upload.Form("preco")
status = Upload.Form("status")
descricao = Upload.Form("descricao")
area = Upload.Form("area")
contrucao = Upload.Form("contrucao")
proprietario = Upload.Form("proprietario")
telefone = Upload.Form("telefone")
' === LÊ AS FOTOS ENVIADAS ===
For i = 1 To 20
On Error Resume Next
Set File = Upload.Files("foto" & i)
If Not File Is Nothing Then
fileName = File.FileName
If fileName <> "" Then
fotoURL = "https://www.jmimoveis.cim.br/fotos/" & File.FileName
fotos(i) = fotoURL
Else
fotos(i) = ""
End If
Else
fotos(i) = ""
End If
Next
' =====================================
' CONEXÃO COM MYSQL (UTF-8)
' =====================================
Set objConn = Server.CreateObject("ADODB.Connection")
' OBS: use o driver UNICODE e charset=utf8mb4
strConn = "Driver={MySQL ODBC 8.0 Unicode Driver};" & _
"Server=mysql.jmimoveis.cim.br;" & _
"Database=jmimoveis;" & _
"Uid=jmimoveis;" & _
"Pwd=******;" & _
"Option=3;CHARSET=utf8mb4;NO_SSPS=1;"
On Error Resume Next
objConn.Open strConn
If Err.Number <> 0 Then
Response.Write "<p style='color:red'><b>? Erro ao conectar ao MySQL:</b> " & Err.Description & "</p>"
Response.End
End If
' Garante UTF-8 ativo na sessão MySQL
objConn.Execute "SET NAMES utf8mb4 COLLATE utf8mb4_general_ci"
objConn.Execute "SET CHARACTER SET utf8mb4"
objConn.Execute "SET collation_connection = 'utf8mb4_general_ci'"
' =====================================
' MONTA E EXECUTA O INSERT
' =====================================
strQuery = "INSERT INTO IMOVEL " & _
"(titulo, dormitorio, suite, visibilidade, tipo, local, bairro, " & _
"foto1, foto2, foto3, foto4, foto5, foto6, foto7, foto8, foto9, foto10, " & _
"foto11, foto12, foto13, foto14, foto15, foto16, foto17, foto18, foto19, foto20, " & _
"preco, status, descricao, area, contrucao, proprietario, telefone) VALUES (" & _
"'" & Replace(titulo,"'","''") & "'," & _
"'" & Replace(dormitorio,"'","''") & "'," & _
"'" & Replace(suite,"'","''") & "'," & _
"'" & Replace(visibilidade,"'","''") & "'," & _
"'" & Replace(tipo,"'","''") & "'," & _
"'" & Replace(local,"'","''") & "'," & _
"'" & Replace(bairro,"'","''") & "'," & _
"'" & Replace(fotos(1),"'","''") & "'," & _
"'" & Replace(fotos(2),"'","''") & "'," & _
"'" & Replace(fotos(3),"'","''") & "'," & _
"'" & Replace(fotos(4),"'","''") & "'," & _
"'" & Replace(fotos(5),"'","''") & "'," & _
"'" & Replace(fotos(6),"'","''") & "'," & _
"'" & Replace(fotos(7),"'","''") & "'," & _
"'" & Replace(fotos(8),"'","''") & "'," & _
"'" & Replace(fotos(9),"'","''") & "'," & _
"'" & Replace(fotos(10),"'","''") & "'," & _
"'" & Replace(fotos(11),"'","''") & "'," & _
"'" & Replace(fotos(12),"'","''") & "'," & _
"'" & Replace(fotos(13),"'","''") & "'," & _
"'" & Replace(fotos(14),"'","''") & "'," & _
"'" & Replace(fotos(15),"'","''") & "'," & _
"'" & Replace(fotos(16),"'","''") & "'," & _
"'" & Replace(fotos(17),"'","''") & "'," & _
"'" & Replace(fotos(18),"'","''") & "'," & _
"'" & Replace(fotos(19),"'","''") & "'," & _
"'" & Replace(fotos(20),"'","''") & "'," & _
"'" & Replace(preco,"'","''") & "'," & _
"'" & Replace(status,"'","''") & "'," & _
"'" & Replace(descricao,"'","''") & "'," & _
"'" & Replace(area,"'","''") & "'," & _
"'" & Replace(contrucao,"'","''") & "'," & _
"'" & Replace(proprietario,"'","''") & "'," & _
"'" & Replace(telefone,"'","''") & "')"
On Error Resume Next
objConn.Execute strQuery
If Err.Number = 0 Then
Response.Write "<p style='color:green'><b>? Imóvel cadastrado com sucesso!</b></p>"
Response.Write "<meta http-equiv='refresh' content='2;URL=selimo_.asp'>"
Else
Response.Write "<p style='color:red'><b>? Erro ao inserir no banco:</b> " & Err.Description & "</p>"
End If
objConn.Close
Set objConn = Nothing
Set Upload = Nothing
%>
Amigo já tive esse problema , abra seu arquivo no bloco de notas e salve como => Tipo de Arquivo ="Todos" e codificação UTF-8
Faça seu login para responder