Encoding.UTF8 и Encoding.Unicode обеспечат достаточную функциональность. Для получения дополнительной информации см. Википедию
Я подозреваю, что вы столкнулись с проблемой несоответствия кодировки символов в классической форме.
Это выглядит следующим образом: -
Если вы исследуете содержимое поля напрямую с помощью инструментов сервера SQL, вы, вероятно, увидите там поврежденные строки. Теперь, когда вы хотите использовать эту строку с другим компонентом, который ожидает прямую строку Unicode, именно здесь вы обнаружите эту ошибку.
Решение состоит в том, чтобы всегда гарантировать, что все ваши страницы не только отправляют CharSet = "UTF-8" в ответе, но также используйте Response.CodePage = 65001 перед использованием Response.Write и перед попыткой чтения любых значений Request.Form. Используйте директиву Codepage в заголовке <% @ page.
Теперь вам осталось восстановить поврежденные строки, уже имеющиеся в вашей БД.
Используйте ADODB.Stream:-[1234 impressionThis function (which BTW is the answer to ваш фактический вопрос) принимает поврежденную строку (ту, которая имеет байтовое представление байта) и преобразует ее в строку, которой она должна была быть. Вам нужно применить это преобразование к каждому полю в БД, которое стало жертвой ошибки.
в ответе, но также используйте Response.CodePage = 65001 перед использованием Response.Write и перед попыткой чтения любых значений Request.Form. Используйте директиву Codepage в заголовке <% @ page.Теперь вам осталось восстановить поврежденные строки, уже имеющиеся в вашей БД.
Используйте ADODB.Stream:-[1234 impressionThis function (which BTW is the answer to ваш фактический вопрос) принимает поврежденную строку (ту, которая имеет байтовое представление байта) и преобразует ее в строку, которой она должна была быть. Вам нужно применить это преобразование к каждому полю в БД, которое стало жертвой ошибки.
в ответе, но также используйте Response.CodePage = 65001 перед использованием Response.Write и перед попыткой чтения любых значений Request.Form. Используйте директиву Codepage в заголовке <% @ page.Теперь вам осталось восстановить поврежденные строки, уже имеющиеся в вашей БД.
Используйте ADODB.Stream:-[1234 impressionThis function (which BTW is the answer to ваш фактический вопрос) принимает поврежденную строку (ту, которая имеет байтовое представление байта) и преобразует ее в строку, которой она должна была быть. Вам нужно применить это преобразование к каждому полю в БД, которое стало жертвой ошибки.
-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
Эта функция (которая, кстати, является ответом на ваш настоящий вопрос) принимает поврежденную строку (ту, которая имеет байтовое представление байта) и преобразует ее в строку, которой она должна была быть. Вам нужно применить это преобразование к каждому полю в БД, которое стало жертвой ошибки.
-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
Эта функция (которая, кстати, является ответом на ваш настоящий вопрос) принимает поврежденную строку (ту, которая имеет байтовое представление байта) и преобразует ее в строку, которой она должна была быть. Вам нужно применить это преобразование к каждому полю в БД, которое стало жертвой ошибки.