今天在做MOSS站点的新闻评论时,要向MOSS数据库中单独建的表里面插入新闻评论内容,当插入中文字符时到表里面就变成了“?”问号,而自己新建了一个库在插入相同的记录就能正常显示中文字符,感觉非常奇怪。
新建的表中存放内容的字段均为nvarchar类型,C#代码的编码格式为UTF-8。
后来想通过ENCODE和DECODE编码和解码方式来解决,尝试了一下还是不成功,因为在显示的时候无法成功解码。
我看了一下MOSS站点的数据库,排序规则为Latin1_General_CI_AS_KS_WS,这是MOSS创建站点时指定的排序规则。
同时对比了一下自已手动创建的库,排序规则为Chinese_PRC_AS。
自己感觉应该排序规则产生的问题,突发奇想,想把MOSS站点的库的排序规则手改改为Chinese_PRC_AS,但是无法成功,提示一些错误。
还好没有修改成功,要是修改成功了,还不知道会不会影响MOSS站点的其它内容。
最后通过同事的指点在SQL语句上做了些改动,解决了此问题。
如下图所示:
就是在有中文字符的内容处加一个大写的“N”。
经过这样处理后,插入数据里面的内容在也不是问号“?”了,也能正常显示了。
希望有朋友遇到在向数据库里面插入中文字符出现问号“?”时能有所帮助。