如何将 UTF-8 数据从经典 asp 表单发布转换为 UCS-2 以插入 SQL Server 2008 r2?
我正在“现代化”一个使用 Access 2000 数据库的经典 asp 应用程序。
我在 SQL Server 2008r2 上重写了数据库,并将所有字段更改为使用较新的启用了 unicode 的 nchar、nvarchar、ntext 并导入了旧数据。我也从IIS 6切换到IIS 7
经典的asp是使用UTF-8收集和写入数据。
现在,应用程序在网页中正确显示旧数据,但当我触摸它时,即:更新或插入数据正在损坏。我假设在将数据写入 SQL Server 之前,我需要以某种方式将 UTF-8 数据从经典 asp 转换为 UCS-2。
但如何呢?
注意:似乎sql server在从access导入数据时自动将utf-8数据转换为可用的格式。
I am in the process of "modernizing" a classic asp application that uses a Access 2000 database.
I rewrote the database on SQL Server 2008r2 and changed all of the fields to use the newer unicode enabled nchar, nvarchar, ntext and imported the old data. I also switched to IIS 7 from IIS 6
The classic asp is collecting and writing data using UTF-8.
Now the application shows the OLD data correctly in the web pages but as son as I touch it ie: UPDATE or INSERT the data is getting corrupted. I assume I need to somehow convert the UTF-8 data from the classic asp to UCS-2 somehow before I write the data into SQL server.
But how?
NOTE: it seems that sql server auto converted the utf-8 data into a usable format when it imported the data from access.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您必须通过在插入值前面添加 N 来告诉 SQL Server 2008 您正在发送 unicode 数据。所以就像这样
N 告诉 SQL Server 将内容视为 Unicode。并且不会损坏数据。
有关详细信息,请参阅 http://support.microsoft.com/kb/239530。
这是在经典 ASP IIS 7 SQL Server 2008r2
ASP 页上运行的测试代码
You have to tell SQL Server 2008 that you are sending in unicode data by adding an N to the front of your insert value. so its like this
The N tells SQL server to treat the Contents as Unicode. and does not corrupt the data.
See http://support.microsoft.com/kb/239530 for further info.
Here is test code Run on Classic ASP IIS 7 SQL Server 2008r2
ASP Page