`
open2ye
  • 浏览: 99061 次
  • 性别: Icon_minigender_1
  • 来自: 温州
社区版块
存档分类
最新评论

用Ruby 来调用 mssql(sqlserver) 的 ntext 等 unicode 类型

阅读更多
访问数量库时用
    
DBI.connect(ODBC_NAME,ODBC_USER, ODBC_PWD) do |db|
  db.do('set textsize 9999')  # 如果没有这句会抛错
  db.select_all("select * from 
end


unicode -> utf8 or gb2312

require 'iconv'
require 'cgi'
class Iconv

  def Iconv.unicode2utf8(unicode_string)
    unicode_string.gsub(/\\u\w{4}/) do |s|
      str = s.sub(/\\u/, "").hex.to_s(2)
      if str.length < 8
        CGI.unescape(str.to_i(2).to_s(16).insert(0, "%"))
      else  
        arr = str.reverse.scan(/\w{0,6}/).reverse.select{|a| a != ""}.map{|b| b.reverse}
        # ["100", "111000", "000000"]
        hex = lambda do |s|
          (arr.first == s ? "1" * arr.length + "0" * (8 - arr.length - s.length) + s : "10" + s).to_i(2).to_s(16).insert(0, "%")
        end
        CGI.unescape(arr.map(&hex).join)
      end
    end
  end
  
  def Iconv.unicode2gb2312(unicode_string)
    u8_text = Iconv.unicode2utf8(unicode_string)
    Iconv.iconv("UTF-8//IGNORE","GB2312//IGNORE",u8_text)
  end
end


unicode2utf8 从 http://yuweijun.blogspot.com/2008/12/rubyunicodeutf8.html 得到
分享到:
评论

相关推荐

    SQL Server 中 text或ntext 字段内容替换方法

    在不确定text或ntext字段长度的时候 SQL Server 中 text或ntext 字段内容替换方法

    sql server替换textntext类型字段的值

    sql server替换textntext类型字段的值, 处理这种比较特殊的情况

    SQL数据类型和范围(SQLServer,MySql,Access)

    Microsoft Access、MySQL 以及 SQL Server 所使用的数据类型和范围。 SQL Server 数据类型 Character 字符串 数据类型 描述 存储 char(n) 固定长度的字符串。最多 8,000 个字符。 n varchar(n) 可变长度的...

    sqlserver 中ntext字段的批量替换(updatetext的用法)

    在Sql Server 中,ntext/text/image 字段不允许应用replace函数替换内容; 2。通过convert字段转换,可以把ntext字段转换为varchar(8000),然后用Relpace函数替换,不过,此方法,对于字段长度大于8000的ntext字段...

    sqlServer 数据库存储图片与读取.rar

    sqlserver 存储图片,下载图片案例。c# 源码,供学习交流。

    SQLserver查询数据类型为ntext是空或NULL值的方法

    SQLserver查询数据类型为ntext是空或NULL值的方法

    完美解决SQL server2005中插入汉字变成问号的问题

    关于SQL server2005中插入汉字变成问号的解决办法 1.右击你所建的数据库,点击“属性”,选择“选项”并点击。将其中的排序规则设置为:Chinese_PRC_CI_AS(选择下拉列表框即可设置),然后“确定“。2.在表中将你的...

    SQL SERVER 2000开发与管理应用实例

    本书不但融合了作者在使用SQL Server 2000过程中遇到的各种常见问题和应用案例,还总结了作者几年来在CSDN 社区SQL Server版所解决的大量问题,面向实际项目需求,涉及不同类型的应用,能够多角度地引导读者学习相关...

    sql ntext数据类型字符替换实现代码

    代码如下: —ntext数据类型字符替换 create table tt ( sid INT IDENTITY(1,1), cont ntext ) go insert into tt(cont) values(N’fd sad fdsa 涂聚文工团 缔友计算机信息技术有限公司 可能性 桔柑 ‘) go update tt...

    Log Explorer for SQL Server v4.22 含注册机

    服务器端代理是保存在SQLServer主机中的一个只读存储过程,他的作用是接受客户端请求,读取在线事物日志块并通过网络传给客户端软件,由客户端软件来读取这些原始的数据块来完成Log Explore所提供的所有功能。...

    SQL中函数 replace 的参数1的数据类型ntext无效的解决方法

    今天将一个ACC的数据库转换成ms-sql以后发现在使用replace替换语句的时候出现: SQL中函数 replace 的参数 1 的数据类型 ntext 无效。找了半天找到了解决办法: 因为ntext需要转化下 用如下语句即可解决: 代码如下:...

    从mysql数据库迁移至sqlserver数据库

    从mysql数据库迁移至sqlserver数据库,支持2005,2008版本。 text类型建议先转换为varchar(10000)类型,否则迁移后中文会出现乱码。迁移后会自动转换为ntext类型。

    Sqlserver2000经典脚本

    介绍就不多说了,下边是部分目录,觉得有用的话就顶一个 C:. │ sqlserver2000.txt │ ├─第01章 │ 1.9.1 设置内存选项.sql │ 1.9.2(2) 使用文件及文件组.sql │ 1.9.2(3) 调整...

    SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别.doc

    MSSQL为我们提供了两种动态执行SQL语句的命令,分别是 EXEC 和 SP_EXECUTESQL ,我们先来看一下两种方式的用法。 先建立一个表,并添加一些数据来进行演示: 复制代码 CREATE TABLE t_student( Id INT NOT NULL, ...

    SqlServer数据库中文乱码问题解决方法

    原因分析:SQL版的乱码问题还是出现在SQL SERVER的安装设置上。默认安装时系统默认的排序规则是拉丁文的排序规则,但一般人在安装时没有考虑到这一点,安装时只是点取下一步,安装完成后,造成了SQL版在使用过程中...

    sqlserver2000基础(高手也有用)

    7.2.4 使用SQL Server的系统存储过程处理分页 216 7.3 特殊要求的分页处理 217 7.3.1 随机显示的分页处理 217 7.3.2 分类数据的分页处理 221 第 8 章 树形数据处理 223 8.1 单编号处理法 223 8.1.1 ...

    SQL SERVER使用REPLACE将某一列字段中的某个值替换为其他的值

    SQL SERVER”函数 replace 的参数 1 的数据类型 ntext 无效”解决办法 UPDATE 表名 SET 列名= REPLACE(CAST 列名 AS varchar(8000)),’aa’,’bb’) 您可能感兴趣的文章:sqlserver replace函数 批量替换数据库中...

    pymssql ntext字段调用问题解决方法

    不过,在我使用过程中,发现,如果表中包含了ntext字段,就会出错,提示 不能用 DB-Library(如 ISQL)或 ODBC 3.7 或更早版本将 ntext 数据或仅使用Unicode排序规则的 Unicode 数据发送到客户端。 查了一下,发现...

Global site tag (gtag.js) - Google Analytics