URL에서 더하기(+) 기호를 인코딩하는 방법
아래 URL 링크를 클릭하면 새 Google 메일 창이 열립니다.문제는 구글이 이메일 본문의 플러스 기호(+)를 모두 공백으로 대체한다는 것입니다.그런 일은 오직 이 지역에서만 일어나는 것 같다.+
사인. 어떻게 하면 고칠 수 있을까요?(ASP를 만들고 있습니다.NET Web 페이지).
https://mail.google.com/mail?view=cm&tf=0&to=someemail @somedomain . com & su = some subject & body =안녕하세요+저기요, 안녕하세요
(본문 메일에서 '안녕하세요+''Hello there'가 'Hi there Hello there'로 표시됩니다.)
그+
문자는 [URL =>의 [쿼리 세그먼트]에 특별한 의미가 있습니다.이것은 공백 공간을 의미합니다.
. 리터럴을 사용하는 경우+
여기에 서명하고 URL을 인코딩해야 합니다.%2b
:
body=Hi+there%2bHello+there
에서 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
.
예를 들어 다음과 같습니다.이거 드셔보세요
를 부호화하려면+
JavaScript를 사용한 값,encodeURIComponent
기능.
예:
var url = "+11";
var encoded_url = encodeURIComponent(url);
console.log(encoded_url)
RFC-3986에서 "예약되지 않음"으로 정의된 문자를 제외한 모든 문자를 항상 퍼센트 인코딩하는 것이 안전합니다.
예약되지 않은 = ALPHA / DIGIT / "-" / "." / "_" / "~"
따라서 플러스 문자 및 기타 특수 문자를 백분율로 인코딩합니다.
RFC-1866(HTML 2.0 사양) 제8.2.1항 제1항에 따르면 "폼 필드 이름과 값은 이스케이프됩니다.스페이스 문자는 "+"로 대체되고 예약된 문자는 이스케이프됩니다."폼 데이터를 인코딩하는 방법은 이후의 HTML 사양에서도 제공되고 있습니다.어플리케이션/x-www-form-urlencoded에 관한 관련 문단을 찾습니다.
목록에 추가하기만 하면 됩니다.
Uri.EscapeUriString("Hi there+Hello there") // Hi%20there+Hello%20there
Uri.EscapeDataString("Hi there+Hello there") // Hi%20there%2BHello%20there
https://stackoverflow.com/a/34189188/98491 를 참조해 주세요.
보통 사용하고 싶은 것은EscapeDataString
그게 제대로 된 거야
일반적으로 를 사용하는 경우.NET API -new Uri("someproto:with+plus").LocalPath
또는AbsolutePath
는, URL 에 플러스 문자를 보관 유지합니다.(동일)"someproto:with+plus"
문자열)
그렇지만Uri.EscapeDataString("with+plus")
탈옥과 인격, 그리고 생산될 것이다."with%2Bplus"
.
일관되게 말하자면, 나는 항상 탈옥과 캐릭터로 사는 것을 추천한다."%2B"
어디에나 사용할 수 있습니다.그러면 누가 당신의 플러스 캐릭터에 대해 어떻게 생각하는지 추측할 필요가 없습니다.
탈옥자가 '+'
을 하면 가 생성됩니다.' '
일부 컴포넌트의 문제인 것 같습니다.
언급URL : https://stackoverflow.com/questions/5450190/how-to-encode-the-plus-symbol-in-a-url
'programing' 카테고리의 다른 글
HTTP 오류 403.14 - 금지 - 웹 서버가 이 디렉토리의 내용을 나열하지 않도록 구성되어 있습니다. (0) | 2023.04.24 |
---|---|
ASP.NET Core 1.1은 로컬에서 정상적으로 실행되지만 Azure에 게시할 때 "애플리케이션 시작 중 오류가 발생했습니다."라고 표시됩니다. (0) | 2023.04.24 |
데이터베이스 복원 중 mssql '5(액세스가 거부됨)' 오류가 발생했습니다. (0) | 2023.04.24 |
의 개요Excel VBA의 Number Format 옵션 (0) | 2023.04.24 |
Angular2 비활성화 버튼 (0) | 2023.04.24 |