我有一个非常基本的问题,我有以下字符串:
url="http://www.autokaupat.net/Jyv%E4skyl%E4/\\u0026view=2254630"
HTML编码不是问题,但必须将\\u0026
转换为&
才能使其按照我的意愿运行。以下方法对我来说并不起作用,尽管它似乎适用于其他许多方法:
url.force_encoding('UTF-8')
仅当我删除其中一个前导反斜杠时才有效。
有关如何修复的任何想法?
答案 0 :(得分:1)
字符&
在\u0026
中表示为纯字符url
。这是6个字符,而不是表示为unicode转义的单个字符。 force_encoding
在这种情况下不能胜任你的工作。
尝试以下操作,在字符串中提取所有喜欢unicode的序列,并将其替换为该代码点处的实际字符。
url="http://www.autokaupat.net/Jyv%E4skyl%E4/\\u0026view=2254630"
url.gsub!(/\\u([a-f0-9]{4,5})/i){ [$1.hex].pack('U') }
puts url
#=> http://www.autokaupat.net/Jyv%E4skyl%E4/&view=2254630