유니 코드 문자열 :루비 : 언 이스케이프 된 유니 코드 문자열
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를 사용하여, IRB를 사용하지 않는 입력은 따라서 하나의 "\u"
하지 "\\u"
편집, 트위터에서 2 구문 분석 :
""\ u2013 "은 문자 그대로 유니 코드 문자입니다."\\ u2013 "'을 (를) 사용 했습니까? –
그게 아마 gsub의 문제인지 알 것입니다. 그것은 \ uu가 아니라 \ u를 찾고 있습니다 ... 나는 너무 잘 모르겠습니다. ("\ u2013"은 내가 분석 한 것인데, 수동 입력이 아닙니다.) –
제가 말할 수있는 한, 아무 것도 없습니다. 정규식이나 'unescape_unicode'도우미에 문제가 있습니다. 질문에 정의 된대로 문자열에 이스케이프 할 항목이 없습니다. 문제는 파일에 쓰는 방법이 더 많을 수 있습니다. 문자열에 문제가 있음 –