Ruby 1.9.3pl194를 사용하여 JSON 및 로그 파일에서 사용할 비 ASCII 유니 코드 문자가 포함 된 문자열을 이스케이프 처리하려고합니다. 나는 그러나, 이스케이프 버전을 생성 할 필요가 있으므로 비 ASCII를 처리 할 수있는 JSON을 소비하는 것은 ...여분의 큰 따옴표를 사용하지 않고 Ruby에서 유니 코드 문자를 이스케이프 처리합니다.
a = "Abc\u00eddef"
puts a
puts a.inspect
는 생산 : 두 번째 출력은 원치 않는 따옴표를 포함
Abcídef
"Abc\u00EDdef"
주 , 나는 단지 문자열 Abc\u00eddef
을 파일에 쓰고 싶기 때문에 따옴표가 필요 없다. JSON 문자열에 사용하기위한 것이 아닙니다. 나는 시도하고 난 그냥
puts a.inspect[1..-2]
할 수있는 알고 ActionSupport::JSON.decode(b)
를 사용하지만 그 종류의 추한 경우
같은 일이 발생, 반드시 따옴표를 제거 할 필요없이이 일을하는 방법이있다 ?
평범한 오래된 루비가 아니기 때문에 레일에 들어있는 .html_safe
을 가지고 있지 않습니다 (어쨌든 작동하는지 여부는 확실하지 않습니다).
비 ASCII 문자를 제거하면 결과 텍스트를 읽을 수 없게 만들거나 의미가없는 텍스트로 만들 수 있습니다. 그 의미를 지켜야합니까? ASCII가 아닌 모든 문자를 안전한 것으로 바꾸는 HTML 인코딩을 사용할 수 있지만 필요한 경우 값을 복구 할 수 있습니다. –