我似乎是一个非常简单和非常需要的方法.我需要从字符串中删除所有非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) 我试图将变量传递给动态声明的方法,如:
eval(def test(name)
puts name
end
test 'joe')
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
有没有办法做到这一点?