让Godaddy的MSSQL数据库支持中文

使用国外gd空间的朋友,有人询问这样一个问题:

Godaddy SQLServer数据库是否支持中文,如何操作?

关键词:数据库, Godaddy, SQLServer, 中文

 

解答内容如下:

很多朋友购买了Godaddy的Windows系列主机,想在上边做些MS SQL数据库的中文站,有的朋友用了.NET的语言,但是大家比较关心的问题是Godaddy是否支持MSSQL中文数据库,怎么操作。也有很多朋友因为这个问题被困惑了很久。今天在这里跟大家介绍下。

大家遇到的问题大体上如下:

主要问题就是中文乱码,即使在Web.Config文件中加入如下代码也没有作用:
引用:

    <system.web>
    <globalization requestEncoding=”gb2312″″ resp culture=”zh-CN” fileEncoding=”gb2312″ />
    </system.web>

 

而且有的朋友直接在Godaddy控制面板提供的Web Admin管理页面的Sql Server查询分析器里,直接用SQL语句插入中文都不行,如:insert into Table (ID,topic) values (’11’,’中文内容’);这样输入的中文也是乱码。

解决过程:

跟GoDaddy官方沟通也没有实质性的结果,回信如下:
引用:

    Unfortunately, we do not currently support the use of non-Western (Latin) character sets in SQL Server databases setup on our shared hosting. I do apologize for any inconvenience this may cause.
    抱歉,当前我们的共享主机系列不支持SQL Server数据库为非西方(拉丁)字符的设置,对此给您带来的不便我们深表歉意。

经过多方面查找资料以及与和Godaddy官方的多次交流,得出的结论是:Godaddy的MSSQL数据库是支持中文的,完全可以使用中文,但是必须使用比较特殊的方式。

在进行插入操作的SQL语句里,需要在中文前加个N,比如:Insert into User values(1, N’盖茨’)

代码片段举例:

Dim cmd As New sqlCommand(“insert into DB (owner,intro,title) values (‘”& User &”‘,'”& request.form(“intro”) &”‘,'”& request.form(“title”) &”‘)”, conn)

改为:

Dim cmd As New sqlCommand(“insert into DB (owner,intro,title) values (N'”& User &”‘,N'”& request.form(“intro”) &”‘,N'”& request.form(“title”) &”‘)”, conn)

在正常输入中文数据的时候,加入是’中文’这样子输入,那么在他的前面加上一个N,这样就可以向Godaddy的MS SQL Server数据库里写入中文了。

大家可以试试看。

不过这样衍生出的麻烦就是,可能有些程序就需要独立修改一下了。但是Godaddy的主机还是很优越的,如果觉得值得做一下的,可以试试看。

 

分析:

GD的SQL Server是English的操作系统,没有中文包,这样就导致了数据库中的中文乱码。在要插入的数据前加入“N”,表示,数据以 Unicode 格式存储。

 Unicode 字符串的格式与普通字符串相似,但它前面有一个 N 标识符(N 代表 SQL-92 标准中的国际语言 (National Language))。N 前缀必须是大写字母。例如,’Michél’ 是字符串常量而 N’Michél’ 则是 Unicode 常量。Unicode 常量被解释为 Unicode 数据,并且不使用代码页进行计算。Unicode 常量确实有排序规则,主要用于控制比较和区分大小写。为 Unicode 常量指派当前数据库的默认排序规则,除非使用 COLLATE 子句为其指定了排序规则。Unicode 数据中的每个字符都使用两个字节进行存储,而字符数据中的每个字符则都使用一个字节进行存储。有关更多信息,请参见使用 Unicode 数据。 



本文固定链接: http://www.ntxz.net/?p=664 | 周忞 | 吉心的记事本



该日志由 吉心 于2010年07月28日发表在 懒得分类, 旧版博客 分类下, 你可以发表评论
在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 让Godaddy的MSSQL数据库支持中文 | 周忞 | 吉心的记事本

让Godaddy的MSSQL数据库支持中文:目前有1 条留言

  1. 0楼
    123:

    要是存储过程怎么办啊?

    2010-11-18 16:47

发表评论

您必须 [ 登录 ] 才能发表留言!