`
hududanyzd
  • 浏览: 780004 次
文章分类
社区版块
存档分类
最新评论

asp读sql数据时出现乱码问题的解决方法

 
阅读更多

如果你在做网站的时候,无法正确执行sql语句,response后,发现sql语句里面的中文字段都成了乱码,可以用下面的方法解决:

<%@ codepage=936%>简体中文
<%@ codepage=950%>繁体中文
<%@ codepage=65001%>UTF-8

codepage指定了IIS按什么编码读取传递过来的串串(表单提交,地址栏传递等)。

出乱码的原因也就是网站要整合的时候模块编码不一样引起的。
最方便的方法如下:

不要转换任何模块网页的编码该utf-8的还是utf-8,该Gb22312的还是Gb2312。

在Utf-8模块的包文件(如conn.asp,但是要注意conn.asp必须是在第一行调用)最前面加上:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Session.CodePage=65001%>

在GB2312模块的包文件最前面加上:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%Session.CodePage=936%>
--------------------------------------------------------------------
其他参考信息:跟字段类型有关系。 如果你要存入 UNICODE 字符, 请使用 NVARCHAR NCHAR 或 NTEXT 类型。


sql server 2000的unicode编码有特殊性,仅仅在rails中使用utf8编码,和把全部rails项目文件格式改成utf8之外,还是不够的。仅仅这样做,只是部分中文字符能够正确处理,而且存入sql server2000中的中文数据,也完全是乱码。正确的配置方法应该如下。

1. ms sql server2000中数据字段全部要选择成n打头的类型,比如ntext,nvarchar等。

2.安装ADO Driver
安装one -click installer 来安装ruby 的话就已经安装了所有连接SQL Server使用的需求包.但是,并没有安装ADO Driver.
这样来安装它:

在Ruby目录下找到这个目录: /ruby/lib/ruby/site_ruby/1.8/DBD .例如:我的Ruby安装在D:/ruby中,所以是这个目录D:/ruby/lib/ruby/site_ruby/1.8/DBD 在该目录中创建一个ADO文件夹. 下载Ruby-DBI,将lib/dbd_ado/ADO.rb文件拷贝到X:/ruby/lib/ruby/site_ruby/1.8/DBD/ADO/ADO.rb

3. 配置database.yml:Java代码
development:
adapter: sqlserver
database: database_name
host: server_name
username: user_name
password: your_pw_here

development:
adapter: sqlserver
database: database_name
host: server_name
username: user_name
password: your_pw_here

4.在environment.rb添加下面代码
require 'win32ole'
WIN32OLE.codepage = WIN32OLE::CP_UTF8


在这里稍微解释下第四部分的设置。sql server 2000中使用的unicode 并非是utf8,ado的默认链接编码都是当前系统设置的code pages相关的。


一般的windows设置都是非unicode的,比如简体中文windows系统下一般都是gb2312, 在rails中database.yml设置encoding: utf8,对于sql server没有任何用处。

为了迫使sql server接受utf8数据,必须修改ado链接的code pages值为utf8,才能让ado部分代码在接受rails传入的utf8数据之后,不做任何额外的处理. 否则的话,ado部分代码会根据当前系统的默认code pages值来处理这里字符数据。

于是在中文windows系统上,从utf8的rails项目中传入的数据,会被当作gb2312编码的数据来传递到sql server2000中,于是sql server2000中存入的数据会成为乱码,也有部分数据在处理过程中出错,导致sql 语句执行出错。比如常见的中文字符右边的单引号会不见的情况。


不设置 WIN32OLE.codepage = WIN32OLE::CP_UTF8,你的整个系统编码配置是这样的
rails(utf8)<-->ado(根据当前系统cp来取得编码,或是gb2312或是其他)<-->sql server 2000 (unicode)
整个系统编码不一至


WIN32OLE.codepage = WIN32OLE::CP_UTF8 这句代码就是为了更改cp值.整个系统编码配置是这样的
rails(utf8)<-->ado(utf8)<-->sql server 2000 (unicode)
整个系统编码一至,整个系统中不会再出现任何乱码.

分享到:
评论

相关推荐

    asp+mysql+utf8 网页出现乱码问题的解决方法

    MYSQL是UTF8编码,但无论在网页中加多少UTF8的定义,显示的结果都还是会有一些小格子,而且SQL语句中用LIKE 中文,也查询不出来。反而定义为gb2312,显示完全正常。 conn.asp 网页顶部写 代码如下: &lt;&#37;@...

    asp MYSQL出现问号乱码的解决方法

    这样的问题是因为 数据库字符集,表字符集,字段字符集都设为:gbk_chinese_ci 注意数据库连接串里面的 Stmt=Set Names ‘GBK’ ,一定要有这一句。 下面是asp链接mysql的代码。请注意,后面有个GBK。这样就是...

    ASP.NET常见问题集锦.zip

    .net中中文乱码问题解决.txt ADO.NET 与 XML:双剑合壁,威力强大.doc ASP.NET HTTP 运行时.doc ASP.NET ViewState 初探.doc ASP.NET Web 方法中的 XmlElement 参数的功能.d ASP.NET 中 Cookie 的基本知识....

    仿世纪佳缘婚介交友系统5.3 ASP+SQL

    仿世纪佳缘婚介交友系统5.3 ASP+SQL Nslove5使用手册 一、运行环境: 1、服务器要求:windows2000及更高系统版本,IIS5+以上! 2、组件要求:Jmail邮件组件、aspjpeg水印组件、上传组件(aspupload组件)、FSO...

    asp.net知识库

    直接从SQL语句问题贴子数据建表并生成建表语句的存储过程 从SQL中的一个表中导出HTML文件表格 获取數据库表的前N条记录 几段SQL Server语句和存储过程 生成表中的数据的脚本 最详细的SQL注入相关的命令整理 Oracle ...

    ASP.NET中的编码-教程

    讲座内容: 不同编码的页面、脚本之间互相引用,就会产生乱码的问题,解决方法就是统一成一种编码。在ASP.NET中如何处理编码问题?这堂讲座,我将和大家一起探讨这个问题。 &lt;br/&gt;课程讲师: 邵志东 MSDN...

    ASP.NET中的编码-视频

    讲座内容: 不同编码的页面、脚本之间互相引用,就会产生乱码的问题,解决方法就是统一成一种编码。在ASP.NET中如何处理编码问题?这堂讲座,我将和大家一起探讨这个问题。 &lt;br/&gt;课程讲师: 邵志东 MSDN...

    ASP.NET中的编码-演示代码

    讲座内容: 不同编码的页面、脚本之间互相引用,就会产生乱码的问题,解决方法就是统一成一种编码。在ASP.NET中如何处理编码问题?这堂讲座,我将和大家一起探讨这个问题。 &lt;br/&gt;课程讲师: 邵志东 MSDN...

    ASP.NET Night Words

    3.5 乱码问题 26 3.6 服务器端表单 28 3.7 html服务器控件 28 3.8 总结 31 第4章 visual studio 2008介绍 32 4.1 visual studio 2008网站 4.1 开发环境介绍 32 4.2 asp.net网站类型介绍 33 4.3 创建基于解决...

    企业建站专家 SongCMS

    ● 修正部分用户搜索中文字符出现乱码的问题。 ● 取消了需mb扩展支持部分函数,兼容性更好。 ● 新增自定义导航功能。 ● 修正了后台图片预览方式,兼容所有主流浏览器。 ● 重构后台权限分配方式。 ● 修正部分...

    《SQL数据库管理工具》(Richardson Software RazorSQL)v5.1.1/含注册机

    * An ASP bridge for connecting to MS SQL Server databases remotely via ASP enabled web servers * SQL GUI Tools for generating SQL for various operations * Edit, delete, and insert database data with ...

    ASP.NET之表单和控件详解

    HTML表单的提交方式、HTM控件、获取HTML表单内容、乱码问题、SQL注入、服务器端表单、HTML服务器控件 HTML表单的提交方式 对于一个普通HTML表单来说,它有两个重要的属性:action和method。 action属性指明当前表单...

    baikeac20121128

    2013-4-11 百度百科编码变为utf-8,在线提取乱码的解决方法:修改dbkbk62.asp 大约第450行 修改 case 1 webbianma="gb2312"为 case 1 webbianma="utf-8"即可 2012-11-28 修改内容,百度百科在线提取的bug修补。 2012...

    asp查询结果导出excel

    asp连接sql2008全部查询 再导出excel 包里有数据库代码,项目直接放到iis上可用

    QCMS ASP网站管理系统(SQL) 1.4 SP1 GBK完整版

    只要一个ASP+SQL空间即可直接架设,无需更多复杂的操作,程序开源,模版分离,动态标签,只要会HTML就可以做出个性化的网站。 QCMS程序和网页代码分离,用户可以自主修改网页结构.网页和样式分离,使网页体积小巧...

    L-Blog v1.08(SE) Final兄弟修改版.rar

    7:处理了一些页面可能出现乱码的情况,关闭了引用页面,防止垃圾引用,如果要开启,请删除trackback.asp的以下内容:   8:修改了search.asp页面版面无法对齐的问题. 9:增加了数据库防下载功能 10:后面管理账户是...

    无限的无限论坛 v6.0 Beta 5

    16.解决复制内容出现乱码问题 17.解决IP检测不正确问题 18.开放访客发帖、回帖 19.美化帖子显示部分,可分辨楼主与楼层 20.美化用户签名部分,更加美观,且可根据用户经验值判断签名高度,避免了喧宾夺主的情况 ...

    思想吧微型论坛(TBBS)V2.0

    二、升级说明: 增加了SQL防注入程序、修补了部分用户无法删除帖子的BUG、增加了session记录(删贴无须重复登陆)、解决了国外空间乱码问题。 三、开发机构: 【思想吧】 THINK8.COM 专业提供ASP...

    asp.net下将纯真IP数据导入数据库中的代码

    纯真IP数据包含381085条,可以通过下载的查询软件将数据解压为文本格式,并将其编码改为UTF8,否则在程序中读取中文会乱码! 下面为程序执行分析IP数据并插入到Sql Server的截图:程序通过AJAX在客户端进行数据插入实时...

Global site tag (gtag.js) - Google Analytics