RUBY小经验累积

2024-02-22 12:32
文章标签 经验 ruby 累积

本文主要是介绍RUBY小经验累积,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

RUBY小经验累积

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即可在执行时不显示控制台

这篇关于RUBY小经验累积的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/735272

相关文章

2024年 Biomedical Signal Processing and Control 期刊投稿经验最新分享

期刊介绍 《Biomedical Signal Processing and Control 》期刊旨在为临床医学和生物科学中信号和图像的测量和分析研究提供一个跨学科的国际论坛。重点放在处理在临床诊断,患者监测和管理中使用的方法和设备的实际,应用为主导的研究的贡献。 生物医学信号处理和控制反映了这些方法在工程和临床科学的界面上被使用和发展的主要领域。期刊的范围包括相关的评论论文(review p

经验笔记:NAT穿越技术

NAT穿越技术经验笔记 随着互联网的普及和技术的发展,P2P(Peer to Peer,点对点)通信成为许多应用的核心功能之一。然而,网络地址转换(NAT)设备的存在常常成为实现P2P通信的一个障碍。本文旨在总结NAT穿越技术的基本原理及其配置方法,并探讨如何保障NAT穿越的安全性。 1. NAT穿越技术概述 NAT穿越技术是一种使位于不同NAT网络中的主机能够直接通信的技术。NAT(Net

经验笔记:SQL调优

SQL调优经验笔记 引言 SQL调优是确保数据库系统高效运行的重要环节。通过对查询语句、数据库配置、硬件资源等方面进行优化,可以显著提升数据库性能,进而增强应用程序的整体表现。以下是基于常见调优手段和实践经验整理的一份经验笔记。 1. 查询语句优化 1.1 避免使用SELECT * 只选择需要的列,减少不必要的数据传输。 示例: -- 不推荐SELECT * FROM users WH

AI时代产品经理面临的变与不变:0经验求职产品经理要注意哪些细节?

AI时代,各种产品形态、业务的变化,让市场也对产品经理提出了新的要求,产品经理要有哪些变与不变呢?现在入行产品经理是好时机么?没有技术背景、没有学历有优势如何入行做产品经理?今天我们一起探讨一下! 产品人究竟需要具备哪些能力?看这个最新的能力模型图就知道了。 随着当前市场的细分,不同行业和领域对产品经理的能力要求已经从单一的具备产品专业能力演变成了兼具产品专业技能+行业/业务知识

安卓错误经验分析之 R cannot be resolved to a variable

当出现 R cannot be resolved to a variable  错误的时候,不能采用编译器建议的修改方法,试着clean一下,然后查找gen文件夹下R.java是否丢失,如果不存在R.java,程序没有报错且采用其它方法均无效,八成是res文件夹下的layout或者manifest出现错误没有显示出来,需要自己查一遍,否则无法根本解决问题,盲目修改代码是没用的。

android开发避坑经验(1)

在 Android 开发的过程中,我们会遇到许多潜在的陷阱和坑,这些问题如果不及时识别和解决,可能会导致项目延迟、代码混乱甚至用户体验下降。本篇文章将分享一些常见的 Android 开发陷阱,以及如何有效地避免这些问题。 1. UI 性能优化 坑点:过度绘制和卡顿 在 Android 应用开发中,UI 是用户最直接的体验。过度使用复杂的布局和不合理的动画会导致应用卡顿。 避坑建议: 使用

经验笔记:Spring Boot项目结构

Spring Boot项目结构经验笔记 引言 Spring Boot 是一个基于 Spring 框架的简化版,它旨在简化新 Spring 应用的初始搭建以及开发过程。Spring Boot 提供了开箱即用的体验,通过自动配置、起步依赖、外部化配置等方式,使开发者可以快速地构建独立的、生产级别的基于 Spring Framework 的应用程序。本文将介绍一个典型的 Spring Boot 项目

胖哥的经验 | 一款普适的实时数仓架构设计

什么?胖哥的经验,没错这是来自我们大数据成神之路小伙伴的经验。有什么问题,欢迎大家加群讨论,公众号回复【加群】。 一、实时数仓的架构背景 首先我们来聊一聊实时数仓是怎么诞生的,在离线数仓的时候数据是T+1的也就是隔一天才能看到昨天的数据,这种形式持续了很久的时间,但是有些场景真的只有实时的数据才有用武之地。例如推荐、风控、考核等。那么这个时候实时指标也就应运而生,在最开始的时候,采用flink\

经验笔记:跨站脚本攻击(Cross-Site Scripting,简称XSS)

跨站脚本攻击(Cross-Site Scripting,简称XSS)经验笔记 跨站脚本攻击(XSS:Cross-Site Scripting)是一种常见的Web应用程序安全漏洞,它允许攻击者将恶意脚本注入到看起来来自可信网站的网页上。当其他用户浏览该页面时,嵌入的脚本就会被执行,从而可能对用户的数据安全构成威胁。XSS攻击通常发生在Web应用程序未能充分过滤用户提交的数据时,导致恶意脚本得以传递

零经验想跳槽转行网络安全,需要准备什么?(详细版)

给大家的福利 🤟 基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 前言 最近在后台收到了部分私信,大部分都是关于网络安全转行的问题,其中,目前咨询最多的是:觉得现在的工作没有发展空间,替代性强,工资低,想跳槽转行网络安全。其中,大家主要关心的是:没有经验怎么学习?需要准备什么?发展前景好吗?能拿到高薪吗? 等等这类的话题。 在这里我将问题总结划为了三个: 网