让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 数据。
要是存储过程怎么办啊?
2010-11-18 16:47