Преобразование UTF-8 String Classic ASP в базу данных SQL
Поэтому у меня возникла проблема с правильным преобразованием французских символов. По сути, у меня есть форма, которая отправляет данные в базу данных SQL. Затем на другой странице данные из этой БД извлекаются и отображаются пользователю. Но данные (строки) отображались со странными испорченными символами, потому что ввод в форме на другой странице был на французском языке. Я преодолел эту проблему с помощью следующей функции, которая преобразует строку в правильный набор символов. ОДНАКО, очевидно, лучшим решением будет преобразовать его ПЕРВЫМ, а затем отправить его в базу данных. Теперь вот код для преобразования строки, извлеченной из БД, в соответствующую кодировку:
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
Я получил эту функцию отсюда:Классический ASP - Как преобразовать строку UTF-8 в UCS-2?
Теперь мой вопрос: какую функцию я использую, чтобы предварительно преобразовать строки и затем отправить их в базу данных, чтобы, когда я их получу, они были исправны?
Испытанный метод Павла:
Итак, есть страница 1 и страница 2. Страница 1 содержит форму, которая при отправке отправляет строку в БД, которая затем извлекается на странице 2. Я попробовал решение Пола, удалив функцию ConvertFromUTF8 и оставив ее прежней. (вернулись странные мангольские символы). После этого я добавил следующую строку в верхней части страницы 1 и страницы 2.
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
У меня также есть следующее на обеих страницах:
Response.CodePage = 65001
Response.CharSet = "UTF-8"
Но это не сработало :(
Редактировать: это работает !, большое спасибо всем за вашу помощь! Все, что мне нужно было сделать, это добавить «CodePage = 65001» поверх страницы (о которой я даже не говорил), где происходила запись в часть БД.