2013-06-18 2 views
1

Я ударился головой о стену с этой проблемой в течение большей части двух дней, и мой vbscript/ado супер ржавый.Как отправить данные в unicode в поле nvarchar в хранимой процедуре с помощью ado/vbscript?

Я унаследовал унаследованный продукт. Он содержит метод, который выполняет рудиментарное шифрование на некоторых данных перед его хранением и содержит метод дешифрования, когда данные считываются из базы данных.

Я могу выдать зашифрованное значение на экран, а затем расшифровать зашифрованное значение до оригинала.

Проблема заключается в базе данных.

Когда я пытаюсь отправить эти данные в сохраненный процесс, некоторые символы заменяются символом # 65533 (алмаз с вопросительным знаком). Когда метод дешифрования захватывает эти данные, он не знает, что делать с этими нечетными символами.

Я обозначая, что что это NVARCHAR поля с adVarWChar

Set cmd = Server.CreateObject("ADODB.Command") 

cmd.CommandType = adCmdStoredProc 
cmd.CommandText = "_sp_InsertData" 
cmd.ActiveConnection = DefaultConnectionString 

cmd.Parameters.Append cmd.CreateParameter("@somevariable", _ 
adVarWChar, _ 
adParamInput, _ 
255, _ 
MethodThatReturnsUnicodeDataThatDumpsToTheScreenJustFine()) 

cmd.Execute 

Кроме того: я могу выполнить хранимую процедуру через Sql Server Management Studio, вставив зашифрованные данные в поле, и она работает просто отлично. Метод дешифрования точно знает, что делать.

+0

- это ваш файл asp, сохраненный в формате Unicode? – John

+0

Notepad ++ говорит, что это так. – TimWeis75

+0

Вы можете написать письмо для MethodThatReturnsUnicodeDataThatDumpsToTheScreenJustFine(). Важны некоторые вещи, такие как завершение и длина нулевого символа. – Papasmile

ответ

1

Убедитесь, что ваш сценарий ASP (в блокноте или что-то еще) сохраняется в формате UTF-8.

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> 
<% 
Response.ContentType = "text/html" 
Response.CodePage = 65001 
Response.CharSet = "UTF-8" 
%> 

Это первый включать на все мои ASP, так как IIS7 вы должны поставить это на UTF-8 страниц, чтобы отобразить или сохранить, он будет использоваться по желанию в IIS6 (по крайней мере, в японских версиях IIS я использовал)

+0

Я сделал эти изменения, и я получаю тот же результат. Любые другие идеи? – TimWeis75

+0

Вы на 100% уверены, что сам файл ASP сохраняется в формате UTF-8? Также вы сохраняете свои данные в своей базе данных с опцией N со всеми полями nvarchar, ntext и т. Д.? – silver

 Смежные вопросы

  • Нет связанных вопросов^_^