【问题一】invalid byte sequence in GBK”问题 invalid byte sequence in UTF-8”问题

参考地址:http://fantaxy025025.iteye.com/blog/2223849

具体解决方案:

碰见错误:

Ruby代码 收藏代码

test.rb:8:in `match': invalid byte sequence in GBK (ArgumentError)
from test.rb:8:in `block in <main>'
from test.rb:6:in `each'
from test.rb:6:in `<main>'

原因:

平时习惯在文件头部加入# encoding: utf-8 没用的。

理论总是在问题的时候才能闪光。

看此文。Ruby1.9之字符串内编码和外编码

解决方法:

假如外部文件是utf-8编码。

  • 读文件的时候指定外编码:utf-8。 lines = File.readlines('xxx\origin3.txt', :external_encoding => "UTF-8")

  • 行内转码:line.force_encoding("UTF-8")#是修改内编码为UTF8

  • file=File.new(fr).tap{|f|f.set_encoding'utf-8','GBK'}

  • set_encoding 'utf-8','GBK‘ #是将字节流转换成GBK格式的(外编码仍为UTF8)

  • f = File.open 'environment.rb', 'r:gbk' # 如果是 utf-8 编码,就用 'r:utf-8'

f = File.open 'environment.rb', 'r:gbk:utf-8' # 如果是 utf-8 编码,就用 'r:utf-8'

为什么很多人出现此问题?

win7下:

puts "Encoding.default_external=#{Encoding.default_external}"

puts "Encoding.default_internal=#{Encoding.default_internal}"

win7下默认输出:

Encoding.default_external=GBK

Encoding.default_internal=

看见了默认是认为外部编码gbk,但我们一般的习惯文件是utf-8的。

好了,知晓了。

【问题2】

Parser errors:

(20:4): expected: #TagLine, #ScenarioLine, #ScenarioOutlineLine, #Comment, #Empty, got '场场景景:: 课课程程相相关关-发发表表评评论论'

(21:5): expected: #TagLine, #ScenarioLine, #ScenarioOutlineLine, #Comment, #Empty, got '当当 移移动动端端用用户户发发送送POST请请求求'

(22:5): expected: #TagLine, #ScenarioLine, #ScenarioOutlineLine, #Comment, #Empty, got '那那么么 移移动动端端发发送送请请求求接接口口返返回回值值正正确确<rtn_msg><成成功功>'

解决方法:

原因一: .features 文件 里的“场景”后面的冒号是英文的,不是中文的

【Cucumber】【问题集锦】的更多相关文章

  1. 看完SQL Server 2014 Q/A答疑集锦:想不升级都难!

    看完SQL Server 2014 Q/A答疑集锦:想不升级都难! 转载自:http://mp.weixin.qq.com/s/5rZCgnMKmJqeC7hbe4CZ_g 本期嘉宾为微软技术中心技术 ...

  2. Android之常见问题集锦Ⅱ

    Android问题集锦Ⅰ:http://www.cnblogs.com/AndroidJotting/p/4608025.html EditText输入内容改变事件监听 _edit.addTextCh ...

  3. Visual Studio问题集锦:coloader80.dll未正确安装

    问题 今天在修改之前的一个项目的时候报了一个错,大概内容如下: 有一个 Visual Studio 的 DLL 文件(coloader80.dll)未正确安装.请通过"控制面板"中 ...

  4. Eclipse for Java EE软件操作集锦(二)

    看本文章之前请确保已经了解eclipse建立web工程,如果有疑问请查看本系列文章第一篇 eclipse软件操作集锦(一) 1.我们添加一个servlet 配置一下web.xml测试一下是否能正常显示 ...

  5. Mysql 常用 SQL 语句集锦

    Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...

  6. C/C++面试题集锦(一)

    C/C++面试题集锦(一) */--> C/C++面试题集锦(一) 在类的头文件中进行声明然后在定义文件中实现有什么意义? 一方面使类的实现只编译一次,提高编译效率:另一方面可以实现类的接口和实 ...

  7. 通用js函数集锦<来源于网络> 【二】

    通用js函数集锦<来源于网络> [二] 1.数组方法集2.cookie方法集3.url方法集4.正则表达式方法集5.字符串方法集6.加密方法集7.日期方法集8.浏览器检测方法集9.json ...

  8. 通用js函数集锦<来源于网络/自己> 【一】

    通用js函数集锦<来源于网络/自己>[一] 1.返回一个全地址2.cookie3.验证用户浏览器是否是微信浏览器4.验证用户浏览器是否是微博内置浏览器5.query string6.验证用 ...

  9. Cucumber(一): Preparation

    Every time I wrote some code in ruby and executed our cucumber features I craved for something simil ...

随机推荐

  1. Java常用API、Math类介绍

    一.API的概述 API——Application Programing Interface:应用程序编程接口,是java提供的一些预定义的函数: 目的:基于API实现程序的快速编写,只需了解其作用, ...

  2. Django之连接远程mysql数据库

    1.创建Django项目(test) 进入配置文件settings.py 192.168.83.129:所需要远程连接数据库的ip地址 2.进入到远程连接的主机,修改/etc/mysql/mysql. ...

  3. struts2 的入门案例

    下面写一个struts2 的一个小例子 首先需要struts2 的jar    可以在Struts 官网上下载    本人使用的版本是2.5 17 官网地址: http://struts.apache ...

  4. java日志

    http://blog.csdn.net/u013628152/article/details/43538299 http://blog.csdn.net/isea533/article/detail ...

  5. javax.servlet.ServletException: Servlet.init() for servlet springmvc threw exception

    type Exception report message Servlet.init() for servlet springmvc threw exception description The s ...

  6. 解决webgl使用canvas.toDataURL()没有内容的问题

    转的,记录一下,我还没有验证. 这个问题很好解决,就是在获取webgl对象的时候,多传入一个{preserveDrawingBuffer: true},然后在使用canvas.toDataURL()获 ...

  7. PyTorch 常用方法总结1:生成随机数Tensor的方法汇总(标准分布、正态分布……)

    在使用PyTorch做实验时经常会用到生成随机数Tensor的方法,比如: torch.rand() torch.randn() torch.normal() torch.linespace() 在很 ...

  8. 通过RMAN 识别失败数据库损坏的对象

    背景 业务起不来,读取数据库时报坏块,无法读取数据 数据库版本:11.2.0.3 数据库无备份,无归档 1. 识别坏块 执行以下命令后,rman 会把坏块信息统计到 v$database_block_ ...

  9. "添加与删除程序"报rundll32错误

    无法启动"添加与删除程序"系统报rundll32错误 系统反馈以下信息: rundll32.exe应用程序错误"0x00310030"指令 解决方法: 1.启动 ...

  10. 2018-2019-1 20189206 《Linux内核原理与分析》第六周作业

    linux内核分析学习笔记 --第五章 系统调用的三层机制 学习重点--深入理解系统调用的过程 给MenuOS添加命令 添加命令的方式较为简单,在LinuxKernel/menu/test.c目录下, ...