Wie kann ich UTF-8-Daten von Classic ASP-Formular Post zu UCS-2 zum Einsetzen in SQL Server 2008 r2 konvertieren?

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

Frage

Ich bin in dem Prozess der eine klassische ASP-Anwendung „Modernisierung“, die eine Access 2000 Datenbank verwendet.

ich die Datenbank auf SQL Server neu geschrieben 2008r2 und alle Felder verändert die neuere Unicode aktiviert nchar, nvarchar, ntext und importiert die alten Daten. Ich wechselte auch zu IIS 7 von IIS 6

Die klassische asp ist das Sammeln und Schreiben von Daten unter Verwendung von UTF-8.

Nun ist die Anwendung zeigt die alten Daten korrekt in den Web-Seiten, sondern als Sohn, wie ich es berühren dh: UPDATE oder INSERT die Daten beschädigt zu werden. Ich nehme an, ich muß irgendwie die UTF-8-Daten aus dem klassischen asp zu UCS-2 irgendwie konvertieren, bevor ich die Daten in SQL Server schreiben.

Aber wie?

. Hinweis: es scheint, dass SQL Server automatisch die utf-8-Daten in ein nutzbares Format konvertiert, wenn sie die Daten aus dem Zugriff importiert

War es hilfreich?

Lösung

Sie haben SQL Server 2008 sagen, dass Sie in Unicode-Daten senden, indem sie ein N zu der Vorderseite des Einsatzes Wert hinzufügen. so seine wie diese

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

Die N teilt SQL Server den Inhalt als Unicode zu behandeln. und nicht beschädigt die Daten.

Siehe http://support.microsoft.com/kb/239530 für weitere Informationen.

Hier ist Testcode Run auf klassischen ASP IIS 7 SQL Server 2008r2

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

ASP-Seite

<%

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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top