매우 쉽지만이 모든 백 슬래시로 매듭에 묶여 있습니다.백 슬래시를 추가하여 루비 문자열의 문자 인코딩을 수정하십시오.
웹 사이트에서 (정중하게) 내가 긁어 모으는 데이터가 있습니다. 때로는 다음과 같은 문장이 내게옵니다.
u00a362 000? you must be joking
물론 '£ 2 000이되어야합니까? 너 농담해야한다 '. irb에서의 짧은 테스트가 그것을 해독했습니다.
ruby-1.9.2-p180 :001 > string = "u00a3"
=> "u00a3"
ruby-1.9.2-p180 :002 > string = "\u00a3"
=> "£"
물론 : 백 슬래시를 추가하면 디코딩됩니다.
puts str.gsub('u00', '\\u00')
출력되는 \u00a3
결과 어떤 : 나는 this question의 도움으로 다음을 만들었습니다. 이것은 모두 좋고 좋지만, 문자열 자체에 £가되기를 원합니다. 단지 puts
ing으로 충분하지 않습니다.
gsub('u00a3', '£')
다른 문자가 틀림 없으므로 좋지 않습니다. 실종입니다.
도움을 주셔서 감사합니다.
안녕하세요, 대단히 감사합니다. 내 첫 번째 브러시 '팩'. 지도 안의 대괄호로 무엇을하고 있는지 알지 못합니까? 내가 irb에서 실행할 때, 나는 다음과 같은 것을 얻는다 :'£ 62 000? 너는 농담해야만한다. - 그 길잃은 사람은 어디에서 왔는가? – djb
'Array # pack ("U *")'은 일반적으로 문자열의 모든 문자를 취해 그 유니 코드 비트 값을 배열에 넣는'String # unpack ("U *")'과 결합됩니다. 그래서 우리가 하나의 가치를 지녔다 할지라도 팩을 배열로 제공해야합니다. 어디에서 나오는 'Â'에 대해서는 전혀 모른다. 그것은 나를 위해 잘 작동합니다 ... – Vache
OK - 나는'Â'이 다른 문제라고 생각합니다. 언제 어디서나'£ '를 붙일 때마다 나타나기 때문에 다른 곳에서 오는 것입니다. 이것은 내 문제를 해결합니다. 당신의 도움을 주셔서 감사합니다. – djb