环境为:英文windows server 2003 企业版,英文vs2005 专业版,sql server 2005 express是vs附带的那种。安装windows时,已经选择为中国,且已装东亚字符。
在DNN(不明白这个的,可以不管他,当作普通的asp.net网站就行)中写了一个叫"NewsImages"的模块,调用的swf,来显示5幅图片,实现图片轮换,点击图片打开对应的网站,图片下有标题说明。
5张图片,每张对应的“图片存放位置”“点击图片需要打开的网址”“图片的标题说明”,都是要存放在一张表中。
创建这个表的sql脚本,我直接在sql查询器中执行,中文的数据,不会变成问号。可是用DNN安装模块时,自动执行SQL时,会查看到数据库内的中文变成了问号。这可能说提示到,感觉问题出在dnn上,可是当我在NewsImages的编辑界面将问号改为中文时,又能成功的在数据表内显示中文。
如图1中在空白方框下有一排问号。因为没有填图片地址,所以显示为空白。
NewsImages模块编辑界面中有问号,这是从数据表中读取出来的。
我将问号改为中文,通过这个模块将其保存了数据库中,可以正常的保存为中文,而不是问号。
这时,用数据库管理器,打开表,可以看到,刚才在newsImages模块编辑界面中,我作的修改,已经成功的保存在数据表中。
当用DNN安装NEWSIMAGES模块时,DNN会执行01.00.00SqlDataProvider这个SQL脚本文件,这个文件的截图如下:
安装模块后,用数据库管理器,查看表,会发现,中文全变成问号了,如图:
而我将这个脚本复制到数据的查询分析器,执行,再查看数据表的内容会发现一切正常,中文没变问号。如图:
我昨天,忙活了一天,也没有找到原因。网上有很多说是编码的问题。可是为什么会有时变问号,有时正常?我也将中文前加了N,定义列也是用的ntext,也将SQL改为simple Chinese了。问题依旧。
100分送给解决者。感谢大家捧场。