2013-07-05 2 views
-4

C#의 일부 알고리즘으로 웹 브라우저에서 표시를 수정할 수있는 기호로 URL을 인코딩합니까?URL을 코드화하는 알고리즘

Base64.

+0

다른 검색, base64 나는 이미 사용 중입니다 :) – user2554476

+1

"C# url encode"를 검색 엔진에 입력하고 첫 번째 결과가 사용자의 질문에 대한 답변입니다. 귀하의 질문에 좀 더 많은 노력을 보여주십시오. –

+0

환영합니다! 각기 다른 동작을하는 여러 가지 방법이 있습니다. 그들은 다른 질문에서 길게 논의되었습니다 : http://stackoverflow.com/a/11236038/1344760 – RichardTowers

답변

0

표준 (RFC 3986 aka STD 66)은 당신을 위해 그것을 배치합니다. 특히 § 2 2.1

2. 문자

우리당 구 아마 문자의 순서로 리소스를 식별하는 위해, 데이터를 인코딩하는 방법을 제공한다. URI 문자는 차례로 전송 또는 프레젠테이션의 옥텟으로 자주 인코딩됩니다. 이 규격은 URI 문자들과 그 문자들을 저장하거나 전송하는데 사용되는 옥텟 들인 사이의 매핑을 위해 특정의 문자 인코딩을 요구하지 않는다. 프로토콜 요소에 URI가 표시되면 문자 인코딩은 해당 프로토콜에 의해 정의됩니다. 이러한 정의가없는 의 경우 URI는 주변 텍스트와 동일한 문자 인코딩 인 에 있다고 가정합니다.

ABNF 표기법은 US-ASCII 코드화 문자 집합 [ASCII]을 기반으로하는 음수가 아닌 정수 (코드 포인트)가되도록 터미널 값을 정의합니다. URI는 일련의 문자이기 때문에 URI 구문을 이해하려면 을 반전시켜야합니다. 따라서 규칙을 완료하려면 ABNF에서 사용하는 정수 값을 US-ASCII를 통해 해당 문자로 다시 매핑해야합니다.

URI는 자리 숫자, 문자 및 몇 개의 그래픽 기호로 구성된 제한된 문자 집합으로 구성됩니다. 의 예약 된 하위 집합 인 경우 해당 문자는 URI 내에서 구문 구성 요소를 구분하는 데 사용되지만 나머지 문자는 예약되지 않은 집합 과 구분 문자로 작동하지 않는 예약 문자를 포함하여 각 구성 요소의 식별 데이터를 정의합니다.

2.1. 퍼센트 인코딩은

백분율에 부호화 메커니즘은 설정 허용되거나의 구분자로 사용되고, 또는 내 외측에 그 옥텟의 해당 문자 인 경우, 성분에 성분 데이터 옥텟을 나타내는데 사용된다 . 백분율로 인코딩 된 옥텟은 세 개로 인코딩되며 퍼센트 문자 "%"와 그 옥텟의 숫자 값을 나타내는 두 개의 16 진수로 구성됩니다. 예에서 "% 20"은 US-ASCII에서 문자 (SP)에 해당하는 이진 옥텟 "00100000"(ABNF : % x20)의 퍼센트 인코딩입니다. 섹션 2.4에서는 백분율 인코딩 및 디코딩이 적용되는시기에 대해 설명합니다.

은 PCT 인코딩 'F'를 통해

대문자 16 진수 'A'= "%"HEXDIG HEXDIG

각각 소문자 숫자 'A'내지 'F'에 해당된다. 두 개의 URI가 백분율로 인코딩 된 옥텟으로 사용 된 16 진수의 경우에만 다른 경우 해당 값은 동일합니다. 일관성을 유지하기 위해 URI 생성자와 정규화 기는 모든 백분율 - 인코딩에 대해 대문자 16 진수를 사용해야합니다. 일반적

자유롭게 퍼센트는 부호화되지 않고 URL로 표현 될 수있는 유일한 문자

  • 제한없이 문자이다. 이것들은 US-ASCII입니다 (7 비트) 문자
    • A - Z
    • a - z
    • 0-9
    • -._~
  • 예약 된 문자 ... URL의 문법에서 자신의 역할로 사용 중일 때 s 계획. 이 예약 된 문자는 다음과 같습니다
    • :/?#[]@!$&'()*+,;=

다른 문자, 표준이 제대로 퍼센트로 인코딩되어야합니다 당.

URL에는 US-ASCII 문자 집합 (0x00-0x7F)에서 가져온 문자 만 포함될 수 있습니다. URL에 해당 코드 포인트 범위를 벗어나는 문자가 포함되어 있으면 해당 문자를 미국에서의 표현을 위해 적절하게 인코딩해야합니다. -ASCII (예 : HTML/XML 엔티티 참조를 통해). 또한, 귀하는 응용 프로그램을 해석 할 책임이 있습니다.