SQL Server 2008 R2に挿入するために、Classic ASP Form PostからUCS-2にUTF-8データを変換するにはどうすればよいですか?

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

質問

私は、Access 2000データベースを使用する古典的なASPアプリケーションを「近代化」しています。

SQL Server 2008R2のデータベースを書き直し、すべてのフィールドを変更して、新しいUnicode対応のNCHAR、NVARCHAR、NTEXTを使用し、古いデータをインポートしました。また、IIS 6からIIS 7に切り替えました

古典的なASPは、UTF-8を使用してデータを収集および書き込みです。

これで、アプリケーションはWebページに古いデータを正しく表示しますが、息子として触れると、データが破損していることを更新または挿入します。データをSQL Serverに書き込む前に、クラシックASPからUTF-8データを何らかの形でUCS-2に変換する必要があると思います。

しかし、どうですか?

注:SQL Server Autoは、アクセスからデータをインポートしたときにUTF-8データを使用可能な形式に変換したようです。

役に立ちましたか?

解決

SQL Server 2008に、挿入値の前面にNを追加することにより、Unicodeデータを送信していることを伝える必要があります。だからこのような

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

Nは、内容をUnicodeとして扱うようにSQLサーバーに指示します。データを破壊しません。

見る 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