为什么要做这样的转换?
sql server可以存放任意编码的数据,并不需要事前做编码转换
而sql server的nchar、nvarchar、ntext类型以unicode编码存放数据,并自动进行编码转换因此,你人为的构造成電子書屋是不可取的如果你一定要人工进行编码转换,那么应转换成ucs-2编码,这就是unicodeunicode永远都是两字节的,utf-8可以是1~6字节的。但是他们之间可以通过移位操作来转换,关系是固定的

解决方案 »

  1.   

    网页的字符集是utf-8,网页上提交的文字有gb2312,big5,英文,如果不转换的话到数据库中就变成鐢靛瓙涔﹀眿,这样的乱码,但是在网页上用utf-8也是正常的
      

  2.   

    搞定了,其实数据库的字段设为unicode就可以了,造成乱码的原因是php连sqlserver的dll有问题
    (The extension requires the MS SQL Client Tools to be installed on the system where PHP is installed. The Client Tools can be installed from the MS SQL Server CD or by copying ntwdblib.dll from \winnt\system32 on the server to \winnt\system32 on the PHP box.这段话的意思是说Php使用SQL Server是用的ntwdblib.dll 这个这个DLL,而这个Dll,是用于连接SqlServer 6.5的客户端的,据我所知,SQLServer 6.5还不支持Unicode,这就是问题的所在。经过在网上一番查找,终于找到了个免费的新的Php连接数据库的工具,他使用ADO连接数据库的(看上去好像是这样的),这个软件就是ODBTP,可以从http://odbtp.sourceforge.net/这里下载到。  摘自http://borland.mblogger.cn/nothingdone/posts/9036.aspx)
    如果能给分的话,我愿意给他100分!!! :)