Unicode文字列:ルビー:アンエスケープ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.
しかし、出力(ファイル)がまだ入力と同じです!どんな助けもありがとう。
編集: はルビーマインを使用して、IRBを使用して、入力がツイッターから解析され、それゆえ単一"\u"
ない"\\u"
編集2ない:
'" \ u2013 "'はリテラルのUnicode文字です... "\\ u2013" 'を意味しましたか? –
あなたはそれがおそらくgsubの問題であることを知っています。それは\ uuではなく、\ uを探しています...私はあまりにも修正する方法がわかりません:("\ u2013"は私が解析したもので、手動入力ではありません) –
私が言うことができる限り、正規表現や 'unescape_unicode'ヘルパーの問題です。あなたが提供した文字列にエスケープするものはありません。(質問に定義されているように)問題は、これをファイルに書く方法文字列に問題があります –