用gsub替换字符串中的字符

Sev*_*rin 2 ruby encoding utf-8 iso-8859-1 gsub

我在替换(gsub)字符串中的特定字符时遇到问题.这是我的字符串:

string = "\n\t Tel.:\xA007031 / 11 11 11"
Run Code Online (Sandbox Code Playgroud)

\ xA0不是我想要的字符,所以我尝试用\ x20替换它(两者都是空格字符).为此,我将gsub称为:

string.gsub(' ', ' ')
Run Code Online (Sandbox Code Playgroud)

尝试这样做时,它返回"不兼容的编码正则表达式匹配(UTF-8 regexp与ISO-8859-1字符串)"错误.

任何关于如何解决这个问题的想法将不胜感激!

sai*_*ala 5

你可以这样做 -

string.force_encoding("ISO-8859-1").gsub(/:./,":") 
#=> "\n\t Tel.:07031 / 11 11 11"
Run Code Online (Sandbox Code Playgroud)

如果你想用UTF-8编码,那么这样做 -

string.force_encoding("ISO-8859-1").encode!("UTF-8")
#=> "\n\t Tel.: 07031 / 11 11 11"
Run Code Online (Sandbox Code Playgroud)