2011-04-14 5 views
2

URL에 움라우트가 포함 된 일부 매개 변수를 게시하려고합니다 (PHP 스크립트). 그래서 매개 변수를 벗어났습니다. 하지만 Ruby는 예상치 못한 문자열을 반환합니다.Ruby on Rails가 url을 이스케이프 처리합니다.

PHP :

urlencode("äöü"); 

출력 % E4 % F6을 %의 FC

과의 RoR :

URI.escape("äöü") 

출력 % C3 % A4 % C3 % B6 % C3 % BC

출력 : % C3 % A4 % C3 % B6 % C3 % BC

내가 레일 3.0.5와 루비 1.9.2에서 일하고 있어요 및 내 응용 프로그램이 UTF-8에 대한 설정입니다. 내 잘못은 어디에 있습니까? 아니면 어떻게해야합니까?

고맙습니다 앤디

답변

2

멋진 문자열 인코딩 세계에 오신 것을 환영합니다. 언급했듯이 Ruby는 UTF-8로 구성되어 있지만 PHP 설치는 ISO 8859-1을 사용하여 인코딩하려고하는 것처럼 보입니다.

이 문제를 해결하려면 두 스크립트가 모두 동일한 인코딩을 사용하는지 확인하거나 URL 매개 변수를 UTF-8에서 ISO 8859-1로 명시 적으로 변환해야합니다.

+0

대단히 감사합니다! 이런게 기대 되네. 이제는 CGI.escape (Iconv.conv ('ISO-8859-1', 'utf-8', 'äöü'))'' – andi

-1

어쩌면 당신은 다음과 같은 것을 사용한다 : 당신이 가지고있는 경우 전에 'CGI'을 필요에 오류가 시도

CGI.escape("äöü") 

.

+0

URI.escape와 같은 결과 – andi

+0

매우 이상하게 작동해야합니다. 거기에서도 같은 http://railsforphp.com/reference/url/urlencode가 있습니다. 죄송합니다. –

+0

귀하의 링크에 주어진 문자열을 사용하면 둘 다 (PHP와 RoR) 동일합니다 ... 이상한 – andi

관련 문제