sql server2000 ntext字段乱码问题?

msnsnd 2008-03-12 02:20:26
原来有一个老系统使用asp开发的,数据库是sql server2000,其中有部分字段是ntext的,存储的有中文,但是在数据库中中文显示的都是乱码,但是在系统中显示出来是正确的中文。
现在用asp.net2.0重新开发了这个系统但是数据库不变,但是这个时候从数据库读取ntext字段的时候中文就变成乱码了。
不知道如何才能实现正确的显示中文。
谢谢。
...全文
647 31 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
刘彦祖 2012-10-10
  • 打赏
  • 举报
回复
我也遇到楼主所说的情况了!求大牛解释
smile_whb 2008-03-13
  • 打赏
  • 举报
回复
我也认为是加了密的缘故.同意29楼的说法.
den88 2008-03-13
  • 打赏
  • 举报
回复
是加密和解密
你没有解密
当然是乱码
zhxingway 2008-03-12
  • 打赏
  • 举报
回复
哈哈,学习了,谢谢
ccaakkee 2008-03-12
  • 打赏
  • 举报
回复
确实很奇怪 asp读出来就没问题
boblaw 2008-03-12
  • 打赏
  • 举报
回复
asp的文件里面的meta头里面写的是charset=gb2312
--------------------------
這個並不是,這個是告知客戶端瀏覽器使用的編碼.如果你的ASP代碼中沒有設置Session.CodePage的話,默認應該就是gb2312.
msnsnd 2008-03-12
  • 打赏
  • 举报
回复
asp的文件里面的meta头里面写的是charset=gb2312
不知道如何测试阿,谢谢阿
boblaw 2008-03-12
  • 打赏
  • 举报
回复
数据库中的字段是ntext的,不就是unicode编码么?
怎么才能把乱码文本转换成unicode的?
-----------------------------
根據你所說,在SQL Server中已經亂碼,但是在ASP不會亂碼,說明完全可以通過轉換編碼正確顯示出來.
所以你可以寫一個程序,利用.net類庫中的System.Text.Encoding下的功能,把數據庫中有亂碼的文本以ASP程序中的編碼讀取出來,然後再轉換為unicode編碼,至於是使用utf-8還是utf-16是無關緊要的(我的經驗使我是這樣認為的).
不知道你的ASP是用的什么編碼,你應該查一下ASP源碼,不要隨便就以為是gb2312.也可以通過測試得知.
msnsnd 2008-03-12
  • 打赏
  • 举报
回复
好复杂啊
怎么办啊,好郁闷
还要写工具转换数据阿。。。。
vrhero 2008-03-12
  • 打赏
  • 举报
回复
你把数据从数据库中读到string对象中时已经被转为UTF-16码了...输出时再转码...

UTF-8码和UTF-16码虽然都是Unicode码...但Unicode码却不等于UTF-8码...

还是读取数据时转码吧...最好是治本写个工具把旧数据都转成UTF-8码后再存回去...
jason819 2008-03-12
  • 打赏
  • 举报
回复
也可能是浏览器出了问题!
sun_Ke 2008-03-12
  • 打赏
  • 举报
回复
同情中。。。
msnsnd 2008-03-12
  • 打赏
  • 举报
回复
换成utf-8还是不行啊
wdx2008 2008-03-12
  • 打赏
  • 举报
回复
ntext是UTF-8编码字符,支持世界上任何编码,存储在数据库中显示是乱码是正常的。使用UTF-8页面也要设置成UTF-8不能使用GB2312否则就是乱码
insus 2008-03-12
  • 打赏
  • 举报
回复
msnsnd 2008-03-12
  • 打赏
  • 举报
回复
数据库中的字段是ntext的,不就是unicode编码么?
怎么才能把乱码文本转换成unicode的?
boblaw 2008-03-12
  • 打赏
  • 举报
回复
改為gb2312是一個辦法,但後期可能碰到其他問題.
是好想辦法把數據庫中的原來亂碼文本轉成unicode編碼保存,也就是不讓其亂碼,然後asp.net也使用unicode
msnsnd 2008-03-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 gauzxj 的回复:]
去数据库里看一下是否在数据库内就已经成乱码了
[/Quote]
是的,在数据库里面就是乱码
msnsnd 2008-03-12
  • 打赏
  • 举报
回复
加了还是不行啊,真是太奇怪了
我在现在的系统中用中文写道数据库里面就是中文而不是乱码,所以显示也没有问题

但是老数据的中文就是乱码,所以显示出来就是乱码
gauzxj 2008-03-12
  • 打赏
  • 举报
回复
去数据库里看一下是否在数据库内就已经成乱码了
加载更多回复(7)

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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