Come faccio a convertire i dati UTF-8 dal ASP classico modulo di inserimento a UCS-2 per l'inserimento in SQL Server 2008 R2?

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

Domanda

Io sono nel processo di "modernizzazione" un'applicazione ASP classico che utilizza un database di Access 2000.

ho riscritto il database in SQL Server 2008R2 e ha cambiato tutti i campi di utilizzare la più recente Unicode nchar, nvarchar, ntext e importati i vecchi dati. Ho anche passato a IIS 7 da IIS 6

L'ASP classico sta raccogliendo e la scrittura di dati utilizzando UTF-8.

Ora l'applicazione mostra i dati VECCHI correttamente nelle pagine web, ma come figlio come lo tocco vale a dire: UPDATE o inserire i dati è sempre danneggiato. Suppongo Ho bisogno di convertire in qualche modo i dati UTF-8 dal classico ASP per UCS-2 in qualche modo prima di scrivere i dati in SQL Server.

Ma come?

. NOTA: sembra che l'assistente di sql auto convertito i dati UTF-8 in un formato utilizzabile quando ha importato i dati da accessi

È stato utile?

Soluzione

Devi dire SQL Server 2008 che si sta inviando nei dati unicode con l'aggiunta di una N alla parte anteriore del valore di inserimento. quindi è come questo

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

Il N indica SQL server per trattare il contenuto come Unicode. e non corrompe i dati.

http://support.microsoft.com/kb/239530 per ulteriori informazioni.

Ecco il codice di prova Run su Classic ASP IIS 7 SQL Server 2008R2

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

pagina 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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top