كيف يمكنني تحويل بيانات UTF-8 من منشور نموذج ASP الكلاسيكي إلى UCS-2 لإدخاله في SQL Server 2008 R2؟

StackOverflow https://stackoverflow.com/questions/4110167

سؤال

أنا بصدد "تحديث" تطبيق ASP الكلاسيكي الذي يستخدم قاعدة بيانات Access 2000.

لقد قمت بإعادة كتابة قاعدة البيانات على SQL Server 2008r2 وقمت بتغيير جميع الحقول لاستخدام الأحدث Unicode الممكّن NCHAR و NVARCHAR و NTEXT واستيراد البيانات القديمة. لقد تحولت أيضًا إلى IIS 7 من IIS 6

يقوم ASP الكلاسيكي بجمع البيانات وكتابةها باستخدام UTF-8.

الآن يعرض التطبيق البيانات القديمة بشكل صحيح في صفحات الويب ، ولكن بصفتي Son كما لم أتطرق إليها ، أي: تحديث أو إدراج البيانات تالفة. أفترض أنني بحاجة إلى تحويل بيانات UTF-8 بطريقة أو بأخرى من ASP الكلاسيكي إلى UCS-2 بطريقة ما قبل أن أكتب البيانات إلى SQL Server.

ولكن كيف؟

ملاحظة: يبدو أن SQL Server Auto قام بتحويل بيانات UTF-8 إلى تنسيق قابل للاستخدام عند استيراد البيانات من الوصول.

هل كانت مفيدة؟

المحلول

يجب أن تخبر SQL Server 2008 أنك ترسل بيانات Unicode عن طريق إضافة N إلى مقدمة قيمة الإدراج الخاصة بك. لذلك مثل هذا

strTest = "Служба мгновенных сообщений"
strSQL = "INSERT INTO tblTest (test) VALUES (N'"&strTest&"')"

يخبر N N SQL Server بمعالجة المحتويات على أنها Unicode. ولا يفسد البيانات.

نرى http://support.microsoft.com/kb/239530 لمزيد من المعلومات.

فيما يلي تشغيل رمز الاختبار على ASP IIS 7 SQL Server 2008r2

CREATE TABLE [dbo].[tblTest](
    [test] [nvarchar](255) NULL,
    [id] [int] IDENTITY(1,1) NOT NULL

صفحة ASP

<%

Response.CodePage = 65001
Response.CharSet = "utf-8" 

strTest = Request("Test")

Set cnn = Server.CreateObject("ADODB.Connection")
strConnectionString = Application("DBConnStr")
cnn.Open strConnectionString



strSQL = "INSERT INTO tblTest (test) VALUES (N'"&strTest&"')"
Set rsData = cnn.Execute(strSQL)

%>
 <html xmlns="http://www.w3.org/1999/xhtml" charset="utf-8">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <title></title>

</head 
<body>
    <form action="test.asp" method="post" name="form1" >
        <br/><br/><br/><center>
<table border="1">
    <tr><td><b>Test SQL Write</b> </td></tr>
    <tr><td><input type="text" name="Test" style="width: 142px" Value="<%=strtext%>" /></td></tr>
    <tr><td><input type="Submit" value="Submit" name "Submit" /></td></tr></table> </center>
</form>


</body>
</html>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top