asp到底往字段里写了什么?

fxy_2002 2003-04-15 11:58:15
服务器是WINDOWS2000英文版,数据库是SQL SERVER 7.0英文版。

用ASP页向SQL SERVER 表中的 nvarchar 字段写入了中文字符;用ASP页读取,正常。

换用 VB 读出该 nvarchar 字段的内容时,出现乱码。以SQL Server Enterprise Manager 浏览也一样。

但以 VB 向同一字段写入中文,再用 VB 读取时,正常;以SQL Server Enterprise Manager 浏览也正常,但用 ASP 读取时就不正常了。

按说 nvarchar 类型的字段是以UNICODE形式存放数据的,为何不同的工具写入的数据会不同呢?

...全文
37 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
fxy_2002 2003-04-16
  • 打赏
  • 举报
回复
还是没人有搞定过吗?
那结贴算了。郁闷ing...
fxy_2002 2003-04-15
  • 打赏
  • 举报
回复
(接上)
此时不管是用VB读取,还是SQL Server Enterprise Manager浏览,都不会乱码?

除了换中文OS外,没有其它办法了吗?
fxy_2002 2003-04-15
  • 打赏
  • 举报
回复
我发现与IIS的版本(或者说OS的版本)很有关系,
如果我在中文IIS上运行ASP文件,往同一数据库中的 nvarchar 字段中写入中文无任何问题;
就算是写入繁简混合的中文字串,也能正常显示。
比如:
---------------------------------------
update test set fld1=N'测试,簡體'

set Rs=conn.Execute("select * from test")
Response.Write rs("fld1")
set rs=nothing

结果:
---------------------
测试,簡體

可以看到'测试'是简体中文,而后面的'簡體'是繁体字

难道我需要安装中文OS?
fxy_2002 2003-04-15
  • 打赏
  • 举报
回复
eric,
varchar可能在中文的OS上支持中文,但在E文上是不支持的。
我的OS是E文W2000,SQL SERVER是E文7.0

如果向其中 varchar 字段写入一个中文,会得到两个??
fxy_2002 2003-04-15
  • 打赏
  • 举报
回复
小虎,
我当然知道是写入的字符串,问题是它是什么编码的字符串?
UNICODE?ASCII?
或是ASP它自己转换过的内容?
天外飞狐 2003-04-15
  • 打赏
  • 举报
回复
起始你根本就不必用nvarchar直接用varchar它是可以存储中文的
tigerwen01 2003-04-15
  • 打赏
  • 举报
回复
asp向 nvarchar 字段中写入的是字符串
fxy_2002 2003-04-15
  • 打赏
  • 举报
回复
谢谢楼上几位,不过我的VB确实是中文6.0版的。

再说 SQL Server Enterprise Manager 是英文版的,
用 VB 输入的它能也正常显示,只是用ASP输入的就不行了。

我得出的结论是:ASP写入到数据库里的,ASP读出正常;
VB写入到数据库里的,VB和SQL Server Enterprise Manager 读出正常。

这就很怪了,同一字段表现却大相迳廷。

我现在要用crystal report 做运行在WEB上的报表,
此字段在crystal report上的表现与在VB中的表现一致。
所以我用VB来编写测试程序,却至今不得其解。

如果ASP文件写入的内容与VB写入的内容一致,那么问题就解决了。
现在就是不一致,所以我问ASP到底向 nvarchar 字段中写入的是什么?


cullstar 2003-04-15
  • 打赏
  • 举报
回复
楼上说的有道理,UNICODE码可以处理中英文混写时的问题,但如果你有的是英文版VB,这样它可能就不能处理UNICODE了,
我说一下存储格式吧:
1、在varchar字段中,一个汉字算作两个英字母。
2、在nvarchar中,不管一个汉字还是一个英文字符都算作一个字符。
比如说在varchar(4)中,可以输入4个英文或2个汉字;但在nvarchar(4)中,可以输入4个英文或4个汉字.
ministry_bill 2003-04-15
  • 打赏
  • 举报
回复
可能会有效
我以前也碰到过这样的问题
tonnycncn 2003-04-15
  • 打赏
  • 举报
回复
你可能是用的vb英文版,
用中文版的vb试试
fxy_2002 2003-04-15
  • 打赏
  • 举报
回复
没人知道的吗?:-(

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧