相关疑难解决方法(0)

从Ruby中的字符串中删除非UTF字符?

如何从ruby字符串中删除非UTF8字符?我有一个字符串,例如"xC2".我想从字符串中删除该字符,以便它成为有效的UTF8.

这个:

text.gsub!(/\xC2/, '')
Run Code Online (Sandbox Code Playgroud)

返回错误:

incompatible encoding regexp match (ASCII-8BIT regexp with UTF-8 string)
Run Code Online (Sandbox Code Playgroud)

我也在看text.unpack('U*')和string.pack,但没有得到任何结果.

ruby regex string

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

如何将弃用的iconv更改为String#encode以进行无效的UTF8更正

我从网上获取资源,有时材料的编码不是100%UTF8字节序列有效.我使用iconv静默忽略这些序列以获得一个清理过的字符串.

@iconv = Iconv.new('UTF-8//IGNORE', 'UTF-8')
valid_string = @iconv.iconv(untrusted_string)
Run Code Online (Sandbox Code Playgroud)

但是现在iconv已被弃用,我看到它的弃用警告很多.

iconv将来会被弃用,请使用String #coding

我尝试使用String#encode's :invalid:replace选项转换它,但它似乎没有工作(即没有删除不正确的字节序列).使用String#encode的正确方法是什么?

ruby unicode character-encoding iconv

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

标签 统计

ruby ×2

character-encoding ×1

iconv ×1

regex ×1

string ×1

unicode ×1