2015-01-12 3 views
0

내가 문자열홀수 인코딩 바로

"R&B%2FSoul" 

URL 인코딩 것으로 보인다을 얻기 위해 두 개의 디코딩이 필요합니다.

URI.unescape("R&B%2FSoul") => "R&B/Soul" 

그것의 부분을 돌보는 것, 전부는 아니지만 그 :하지만 이상한 결과를 디코딩. 나는 그래서 inorder를

CGI::unescapeHTML("R&B%2FSoul") => "R&B%2FSoul" 

을 할 경우 내가

CGI.unescape(CGI::unescapeHTML("R&B%2FSoul")) => "R&B/Soul" 

누구든지 여기에 무슨 일이 일어나고 있는지 이해 두 번을 해독하는 데 필요한 올바른 값을 얻으려면? 감사!

답변

2

저는 전문가는 아니지만, 그 문자열에 인코딩이 혼합 된 것처럼 보입니다. 따라서 두 가지 기술을 사용하여 디코딩해야합니다. 어디서 구 했니? 이 URL (퍼센트)이 인코딩한다면,이 아마도과 같습니다

R%26B%2FSoul 

때문에 &%26입니다.

+0

인터넷의 야생에는 모든 종류의 별난 double/triple/n 인코딩 된 문자열이 있습니다. 나는 사람들이주의를 기울이지 않을 때 거미를 썼고 항상 그 물건에 달려 들었다. –

0

%nn은 URI로 인코딩 된 값이고 &...;은 HTML로 인코딩 된 값입니다. 변수 구분 기호이므로 &%26으로 표시 될 것으로 예상됩니다.