utf-8和存在sqlserver中的unicode

linglmf 2005-06-06 08:55:21
“電子書屋”经过UTF-8转换到unicode存在sqlserver表中就是“電子書屋”,然后在网页上经过unicode->utf-8,正常显示。如果要直接在数据库操作,就太不容易了,不知道我这样处理utf8有没有问题,希望各位能给个提示
...全文
330 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
linglmf 2005-06-09
  • 打赏
  • 举报
回复
搞定了,其实数据库的字段设为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分!!! :)
xuzuning 2005-06-06
  • 打赏
  • 举报
回复
为什么要做这样的转换?
sql server可以存放任意编码的数据,并不需要事前做编码转换
而sql server的nchar、nvarchar、ntext类型以unicode编码存放数据,并自动进行编码转换

因此,你人为的构造成電子書屋是不可取的

如果你一定要人工进行编码转换,那么应转换成ucs-2编码,这就是unicode

unicode永远都是两字节的,utf-8可以是1~6字节的。但是他们之间可以通过移位操作来转换,关系是固定的
linglmf 2005-06-06
  • 打赏
  • 举报
回复
网页的字符集是utf-8,网页上提交的文字有gb2312,big5,英文,如果不转换的话到数据库中就变成鐢靛瓙涔﹀眿,这样的乱码,但是在网页上用utf-8也是正常的

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧