• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

RUBY小经验累积

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

GBK和UTF-8的转换

用GBK而不要用GB2312,因为GBK不仅包含简体中文,还包括繁体中文等,是一个大字符集。

# utf8 to gbk
def u2g(ucode)
  begin
    
"#{Iconv.conv('gbk','utf-8',ucode)}"
  rescue
     
" #{ucode} " #如果转换不成功 则不转换 并在字串两边加入空格 避免构造出错误的sql字符串
  end
end
这是一个比较不错的从utf-8转换为gbk编码的方法 在网络上抓取的信息 可使用这个方法转换


RUBY DBI
ruby和sqlserver交互的时候 使用dbi是一个不错的选择
dbi有两个比较重要的方法,一个是execute方法,会返回一个结果集,一个是do方法,do方法不会返回结果集,也不会返回受影响的行数,do方法是提交一个事务,而commit方法可以将之前所有使用do方法提交的事务执行,commit会返回受影响的行数。

需要注意的是,如果使用do方法插入一条数据,而没有commit直接disconnect了,将会导致这条数据插入数据库又被删除,因为你这个时候再插入一条新的数据发现,自增长的主键,被空出一个位置来,比如从3一下跳到了5,所以不要忘记commit。

Net::HTTP
Net::HTTP::new方法可以支持4个参数的重载,比如
req = Net::HTTP.new 'xxxxxx.com',80,'proxy.com',8080
第三个和第四个参数是指定代理服务器
第二个参数指定端口 不写的话默认80


File类的某些方法需要包括'win32/file'
有些方法不能使用,是因为没有包含win32/file库
require 'win32/file'
File.archive? 
'c:/boot.ini'


请求URI的时候 使用URI::encode转换一下
从uri读到的数据写入本地的时候 使用binmode模式
require 'open-uri'
uri 
= 'http://xxx.com/中文.rar'
data 
= open(URI::encode(uri)){|f| f.read}
file 
= File.new uri[uri.rindex('/'+ 1..uri.length-1], 'w+'
file.binmode
file 
<< data
file.flush
file.close


执行sql语句的时候 务必替换特殊字符
name = "lee's book"
sql 
= "update tb_files set [name] = #{name.gsub("'","''")}"

RUBY脚本后缀名改为.rbw即可在执行时不显示控制台

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
如何在Mac OS X上安装 Ruby运行环境发布时间:2022-07-13
下一篇:
【转载】ruby中数组函数示例(1)(转)发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap