2013-07-08 53 views
0

我有這樣的字符串:(!很顯然,我猜:))如何識別字符串轉義?

I\x26#39;m happy 

我期待:

I'm happy 

我怎麼能知道\x26#39;是什麼,我怎麼能解碼它?

+1

該字符串在卡住HTML或XML之前被錯誤地編碼了兩次。當有人使用代碼「重複使用」別人的內容並且不先解碼時,會發生這種情況。它被編碼兩次,這是令人困惑的。當我收到已經被編碼了三次和四次的RSS時,我已經看到了一些情況,並且我必須循環執行解碼的文本,直到它由於解碼而停止更改。這是一個醜陋的解決方案,但工作。 –

+0

@theTinMan我明白你的感受。當使用不同時間編碼的字符串插入到一個字符串中時,它應該是一團糟。 – sawa

+0

這是,我第一次碰到它時,就開始思索。這是一個多次編碼整個HTML文檔的情況。我跑了大約一個小時,然後寫代碼來修復它。 :-) –

回答

1
require "cgi" 

CGI.unescapeHTML("\x26#39;") 
# => "'" 

CGI.unescapeHTML("I\x26#39;m happy") 
# => "I'm happy" 
+1

添加到您的答案中,'\ x26'(十六進制代碼)代表一個'&'和'''(數字代碼)''' – Gerep