2012-05-28 3 views
4

일부 URL에는 일부 특수 문자가 있습니다. 예를 들면 :ERROR URI :: InvalidURIError : 잘못된 URI (URI가 아닌?) 브라우저 때문에

http://blabla.com/title/?t=burası

내가 다른 페이지의 페이지, 내가 사용하는 것이 링크를 제공하고있다 : 모든 것이 정상이지만

/title/?t=buras%C4%B1 

:이 링크를 생성

URI.encode(s) 

이 시점까지는 인코딩 된 URL이있는 페이지에 다른 양식이 있습니다. 그러나 브라우저는 사용자가 /title/?t=buras%C4%B1을 방문하고 /title/?t=burası으로 URL을 변환하면 인코딩 된 URL을 디코딩하는 경향이 있습니다. 문제는 사용자가 'burası'페이지에서 양식에서 뭔가를 보내려고하면,시나 오류 제공하기 때문에 여기에서 시작 :

ERROR URI::InvalidURIError: bad URI(is not URI?): http://localhost:3000/title/?t=burası

내가 때문에 HTTP 요청의 '참조 자'문자열의 생각을하지만 브라우저가 문자열을 자동으로 해독하는 경향이있는 한 해결 방법을 찾을 수 없습니다.

+0

당신이 최소한의 작업 예제를 제공 할 수있다!? 재현 할 수 없습니다. [Gist] (https://gist.github.com/2891784)를 참조하십시오. – jmdeldin

답변

3

URI를 FORM 메서드로 인코딩해야합니다. 예를 들어

, 확인이처럼 HTML FORM 액션 보면 뭔가 :

<form action="/title/?t=buras%C4%B1" method="post"> 

합니까 당신을 위해 그것을 해결하는?

(편집 : 물론 correction-- 당신 말이 맞아 감사의 x1a4 :

+0

당신의 예제에서'action'과'method' 속성을 바꿨습니다. – x1a4

관련 문제