Conversão ASP clássico de UTF-8 String para banco de dados SQL
Então, eu estava tendo um problema com a conversão de caracteres franceses corretamente. Basicamente, eu tenho um formulário que envia dados para um banco de dados SQL. Em outra página, os dados desse banco de dados são recuperados e exibidos ao usuário. Mas os dados (cadeias) estavam sendo exibidos com caracteres corrompidos estranhos porque a entrada no formulário na outra página estava em francês. Eu superei esse problema usando a função a seguir, que converte uma string no charset correto. No entanto, obviamente, a melhor solução é convertê-lo PRIMEIRO e depois enviá-lo para o banco de dados. Agora, aqui está o código para converter uma sequência de caracteres recuperada de um banco de dados no conjunto de caracteres apropriado:
Function ConvertFromUTF8(sIn)
Dim oIn: Set oIn = CreateObject("ADODB.Stream")
oIn.Open
oIn.CharSet = "WIndows-1252"
oIn.WriteText sIn
oIn.Position = 0
oIn.CharSet = "UTF-8"
ConvertFromUTF8 = oIn.ReadText
oIn.Close
End Function
Eu tenho essa função daqui:Classic ASP - Como converter uma string UTF-8 em UCS-2?
Agora, minha pergunta é: qual função eu uso para converter seqüências de antemão e depois enviá-las para o banco de dados, para que, quando eu as recuperar, elas estejam prontas?
Tentei o método de Paulo:
Portanto, há a página 1 e a página 2. A página 1 contém um formulário que, quando enviado, envia a string para o banco de dados, que é recuperada na página 2. Tentei a solução de Paul removendo a função ConvertFromUTF8 e deixando como antes. (retornou caracteres mangólicos estranhos). Depois disso, adicionei a seguinte linha no topo da página 1 e também da página 2.
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
Eu também tenho o seguinte nas duas páginas:
Response.CodePage = 65001
Response.CharSet = "UTF-8"
Mas não funcionou :(
Edit: funciona !, muito obrigado a todos pela ajuda! Tudo o que eu precisava fazer era adicionar "CodePage = 65001" na parte superior da página (sobre o qual eu nem falava), onde estava acontecendo a gravação da parte do banco de dados.