Unicode字符串:紅寶石:UNESCAPE unicode字符串
string = "CEO Frye \u2013 response to Capitalism discussion in Davos: Vote aggressively with your wallet against firms without social conscience."
我試圖(通過Is this the best way to unescape unicode escape sequences in Ruby?):
def unescape_unicode(s)
s.gsub(/\\u([\da-fA-F]{4})/) {|m| [$1].pack("H*").unpack("n*").pack("U*")}
end
unescape_unicode(string) #=> CEO Frye \u2013 response to Capitalism discussion in Davos: Vote aggressively with your wallet against firms without social conscience.
但輸出(到文件)仍然是相同的輸入!任何幫助,將不勝感激。
編輯: 不使用內部評級法,使用的RubyMine,並輸入來自Twitter的分析,因此單"\u"
不"\\u"
編輯2:
'「\ u2013」'是一個字面的unicode字符......你的意思是''\\ u2013「'? – 2012-02-10 16:00:25
你知道這可能是gsub的問題。它正在尋找\\你,而不是\ü...我不太清楚如何修復:(。「\ u2013」是我解析的,它不是手動輸入。 – 2012-02-10 16:57:26
據我所知,沒有問題可能與正則表達式或unescape_unicode助手有關,在你提供的字符串中沒有任何可以忽略的字符(正如問題中所定義的)。問題可能在於你如何將它寫入文件這個字符串有問題 – 2012-02-10 17:03:05