2012-05-23 2 views
1

Node.js에서 querystring.stringify()을 사용하여 URL에서 사용하기 위해 쿼리 문자열에 객체를 인코딩합니다. 공백이있는 값은 %20으로 인코딩됩니다.Node.js RFC3986 이전 URL에 대한 URL 인코딩 (+ vs % 20 사용)

RFC3986 이전에 일반적으로 사용되던 것처럼 +으로 인코딩 된 공백 만 허용하는 특히 까다로운 웹 서비스로 작업하고 있습니다.

공백을 +으로 인코딩하도록 쿼리 문자열에 대한 옵션을 설정하는 방법이 있습니까?

현재 단순히 +%20의 모든 인스턴스를 대체 할 .replace()을하고 있어요,하지만 난 미리 설정할 수있는 옵션이있을 경우이 조금 지루한이다.

+0

기본적으로 라이브러리를 수행 할 수 없다고 생각합니다. 불행히도이를 구현하는 데 더 효율적인 방법이 될 수 있습니다. 웹 서비스 공급자에게 RFC를 따르도록 요청하는 것은 어떻습니까? – Pierre

+0

서비스 제공 업체가 작업 중입니다. 문제는 없지만, 지금은'.replace()'를 고수하겠다. 답변으로 댓글을 게시하려면이 질문에 대한 답변으로 표시해 드리겠습니다. 감사. – Brad

+0

끝냈습니다. 감사. – Pierre

답변

1

기본적으로 라이브러리를 수행 할 수 없다고 생각합니다. 불행히도 다른 옵션은 이미 수행중인 작업을 수행하기 때문에 구현이 더 효율적인 방법 일 수 있습니다. 보다 느린 컴파일되지 않은 순수한 JavaScript 코드를 사용합니다.

웹 서비스 공급자에게 RFC에 따라 달라는 요청은 어떻게됩니까?

1

https://github.com/kvz/phpjs은 모든 PHP 기능을 제공하는 node.js 패키지입니다. 이 글을 쓰는 시점의 http_build_query 구현은 urlencode (쿼리 문자열에 공백 대신 +가 포함되어 있음) 만 지원하지만 곧 enc_type 매개 변수/rawurlencode (공백으로는 % 20)가 포함됩니다.

http://php.net/http_build_query을 참조하십시오.

RFC1738 (+ s)은 기본 enc_type이되며 어느 용도로든 즉시 사용할 수 있습니다.