URL에서 더하기 (+) 기호를 인코딩하는 방법
아래 URL 링크는 새 Google 메일 창을 엽니 다. 내가 가진 문제는 Google이 이메일 본문의 모든 더하기 (+) 기호를 공백으로 대체한다는 것입니다. + 기호에서만 발생하는 것 같습니다. 이 문제를 해결하는 방법에 대한 제안이 있습니까? (나는 ASP.NET 웹 페이지를 작업 중입니다)
https://mail.google.com/mail?view=cm&tf=0&to=someemail@somedomain.com&su=some subject & body = 안녕하세요 + 안녕하세요
(본문 이메일에 "안녕하세요 + 안녕하세요"가 "안녕 거기 안녕하세요"로 표시됩니다)
+
문자는 URL에서 특별한 의미를 가지고 =>는 공백을 의미합니다. +
기호 를 사용하려면 URL로 인코딩해야합니다.
body=Hi+there%2bHello+there
다음은 .NET에서 URL을 올바르게 생성하는 방법의 예입니다.
var uriBuilder = new UriBuilder("https://mail.google.com/mail");
var values = HttpUtility.ParseQueryString(string.Empty);
values["view"] = "cm";
values["tf"] = "0";
values["to"] = "someemail@somedomain.com";
values["su"] = "some subject";
values["body"] = "Hi there+Hello there";
uriBuilder.Query = values.ToString();
Console.WriteLine(uriBuilder.ToString());
결과
본문에 더하기 (+) 기호를 넣으려면 2B로 인코딩해야합니다.
예 : 이것을 시도하십시오
자바 스크립트 언어의 경우 encodeURIComponent 함수를 사용하여 특수 문자를 인코딩하십시오.
RFC-3986에서 "unreserved"로 정의 된 문자를 제외한 모든 문자를 항상 퍼센트 인코딩하는 것이 더 안전합니다.
예약되지 않음 = ALPHA / DIGIT / "-"/ "." / "_"/ "~"
따라서 더하기 문자 및 기타 특수 문자를 퍼센트 인코딩하십시오.
더하기 문제는 RFC-1866 (HTML 2.0 사양), 단락 8.2.1에 따라 발생하기 때문입니다. subparagraph 1., "양식 필드 이름과 값은 이스케이프됩니다. 공백 문자는 '+'로 대체 된 다음 예약 된 문자는 이스케이프됩니다."). 이 양식 데이터 인코딩 방법은 이후 HTML 사양에서도 제공됩니다. application / x-www-form-urlencoded에 대한 관련 단락을 찾으십시오.
참조 URL : https://stackoverflow.com/questions/5450190/how-to-encode-the-plus-symbol-in-url
'programing' 카테고리의 다른 글
리플렉션을 통해 activerecord 연결을 얻는 방법 (0) | 2021.01.19 |
---|---|
exec가 하위 기능이있는 함수에서 작동하지 않는 이유는 무엇입니까? (0) | 2021.01.19 |
테스트를위한 공용 SAML v2 서비스 제공 업체? (0) | 2021.01.19 |
java replaceLast () (0) | 2021.01.18 |
@Override 주석에서 javac가 실패하는 이유 (0) | 2021.01.18 |