문제

URL을 인코딩하는 일반적인 방법은 유니 코드 문자를 2 %HH 코드로 분할하는 것입니다. (u4161 => %41%61)

그러나 디코딩 할 때 유니 코드는 어떻게 구별됩니까? 어떻게 알았어 %41%61 ~이다 u4161 vs. x41 x61 ( "AA")?

인코딩이 필요한 8 비트 문자입니다. %00?

아니면 유니 코드 문자가 분실/분할되어야하는 요점입니까?

도움이 되었습니까?

해결책

에 따르면 위키 백과:

현재 표준

일반적인 URI 구문은 URI에서 문자 데이터를 표현하기 위해 제공하는 새로운 URI 체계가 실제로 번역없이 예방되지 않은 세트의 문자를 나타내야하고 UTF-8에 따라 다른 모든 문자를 바이트로 변환해야한다고 요구합니다. 그 값을 암시합니다. 이 요구 사항은 2005 년 1 월에 RFC 3986의 출판으로 도입되었습니다.이 날짜 이전에 도입 된 URI 체계는 영향을받지 않습니다.

현재 사양에 의해 해결되지 않은 것은 인코딩 된 문자 데이터와 관련하여해야 할 일입니다. 예를 들어, 컴퓨터에서 문자 데이터는 인코딩 된 형태로 어느 정도 나타나므로 URI 문자에 매핑 될 때 이진 데이터 또는 문자 데이터로 취급 될 수 있습니다. 아마도,이 가능성을 설명하는 것은 URI 체계 사양에 달려 있으며, 하나 또는 다른 하나를 요구하지만 실제로는 실제로는 거의 없다.

비표준 구현

유니 코드 문자에 대한 비표준 인코딩이 존재합니다. %uxxxx, 여기서 xxxx는 4 개의 16 진수 숫자로 표시되는 유니 코드 값입니다. 이 동작은 RFC에 의해 지정되지 않으며 W3C에 의해 거부되었습니다. ECMA-262의 세 번째 판에는 여전히이 구문을 사용하는 탈출 (문자열) 함수뿐만 아니라 UTF-8로 변환하는 ENCODEURI (URI) 기능이 포함되어 있으며 각 옥트 각각으로 인코딩합니다.

그래서 그것은 Unencode 방법을 쓰는 사람에게 전적으로 달려있는 것처럼 보입니다 ... 표준이 재미 있지 않습니까?

다른 팁

내가 항상 한 것은 첫 번째 UTF-8은 유니 코드 문자열을 인코딩하여 일련의 8 비트 문자로 만들기 전에 저것들 %HH와 함께.

추신 - 비표준 구현 (%uxxxx)이 거의 없기를 바랍니다.

Uri가 유니 코드가 주변에 있거나 적어도 광범위하게 사용하기 전에 소개되었으므로 이것이 매우 구현 된 특정 질문이라고 생각합니다. UTF-8 텍스트를 인코딩 한 다음 일반적인 사운드를 가장 좋은 아이디어처럼 탈출합니다. 왜냐하면 ASCII/ANSI 시스템과 완전히 거꾸로 호환되므로 이상한 특성을 얻을 수 있습니다.

다른 한편으로, 디코딩하려면 텍스트를 벗어나 UTF-8 문자열을 얻을 수 있습니다. 이전 시스템을 사용하는 사람이 ASCII/ANSI로 일부 데이터를 보내려고한다면 해를 입지 않았습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top