GBK和UTF-8的转换
用GBK而不要用GB2312,因为GBK不仅包含简体中文,还包括繁体中文等,是一个大字符集。
#
utf8 to gbk
def
u2g(ucode)
begin
"
#{Iconv.conv('gbk','utf-8',ucode)}
"
rescue
"
#{ucode}
"
#
如果转换不成功 则不转换 并在字串两边加入空格 避免构造出错误的sql字符串
end
end
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模式
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即可在执行时不显示控制台
本文分享了使用Ruby编程语言的一些实用技巧,包括字符编码转换、数据库交互、网络请求处理及文件操作等关键内容。
1774

被折叠的 条评论
为什么被折叠?



