小编Nic*_*ick的帖子

如何从Ruby中的字符串中删除所有非ASCII字符

我似乎是一个非常简单和非常需要的方法.我需要从字符串中删除所有非ASCII字符.例如©等.请参阅以下示例.

#coding: utf-8
s = " Hello this a mixed string © that I made."
puts s.encoding
puts s.encode
Run Code Online (Sandbox Code Playgroud)

输出:

UTF-8
Hello this a mixed str
Run Code Online (Sandbox Code Playgroud)

我做的.

当我将其提供给Watir时,会产生以下错误:不兼容的字符编码:UTF-8和ASCII-8BIT

所以我的问题是我想在使用它之前去除所有非ASCII字符.我不知道源字符串"s"使用哪种编码.

我一直在搜索和试验很长一段时间.

如果我尝试使用

  puts s.encode('ASCII-8BIT')
Run Code Online (Sandbox Code Playgroud)

它给出了错误:

 : "\xC2\xA9" from UTF-8 to ASCII-8BIT (Encoding::UndefinedConversionError)
Run Code Online (Sandbox Code Playgroud)

ruby watir

17
推荐指数
2
解决办法
1万
查看次数

我可以将变量传递给eval吗?

我试图将变量传递给动态声明的方法,如:

eval(def test(name)
 puts name
end
test 'joe')
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

有没有办法做到这一点?

ruby

4
推荐指数
2
解决办法
1609
查看次数

标签 统计

ruby ×2

watir ×1