在Ruby中替换非ASCII字符

3
我正在尝试使用以下代码将字符串中的非ASCII字符替换为另一个字符:

string.gsub(194.chr,'')

当我这样做时,我会得到以下错误:

RegexpError:正则表达式过早结束:/�/

有人能告诉我如何解决这个问题吗?

1个回答

4
>> string="foo\xC2bar"
=> "foo\xC2bar"
>> string.force_encoding"ASCII-8BIT"
=> "foo\xC2bar"
>> string.gsub(194.chr, '')
=> "foobar"

那么这里的原则是什么,这是必要的吗? - rogerdpack
@罗杰,原始字符串对象采用utf-8编码。混合使用ascii和unicode没有意义。我认为gsub尝试将194.chr编码为utf-8,然后再应用正则表达式,但这会失败,因为它不是一个完整的utf-8字符。 - John La Rooy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接