2009-09-24 2 views
4

/BG/продукти/81-피부 토닝 마스크비 영어 문자

대신

/BG/% d0에서의 체지방률의 브라우저 URL 경로에 그런 그 쇼를하는 방법을

% D1 % 80 % D0의 %를 % d0에서 % B4 % D1 % 83 % d0에서 % 바 %의 D1의 % 82 % D0의 %의 B8/

  1. HttpUtility.UrlEncode ("/ BG/81 피부 토닝 마스크 될 81- 스킨 - 토닝 마스크 ") - 동일한 결과 (продукти 부분에 읽을 수없는 문자)
  2. HttpUtility.UrlEncodeUnicode ("/ bg/продукти/81-skin-toning-mask ") - 심지어 제대로 (이상한 링크) 렌더링하지 않습니다
  3. HttpUtility.UrlPathEncode ("/ BG/продукти/81-피부 토닝 마스크") - 동일한 결과 (продукти 부분에 대한 읽을 수없는 문자)

답변

3
http://www.example.com/bg/продукти/81-skin-toning-mask 

IRI가 많이 포함되어 있습니다.

http://www.example.com/bg/%d0%bf%d1%80%d0%be%d0%b4%d1%83%d0%ba%d1%82%d0%b8/81-skin-toning-mask 

위의 IRI는 올바른 URI 표현입니다.

둘 다 유효하며 최신 브라우저의 <a href> 값과 동일하게 작동합니다.

URI 버전을 사용하는 것이 일반적으로 오래된 브라우저보다 좋다고 생각되지만, IE를 (기이하게도) 좋은 IRI 버전 대신 주소 표시 줄에 URI 버전을 표시합니다. IE는 동일한 요청을 전송합니다. 또한 일부 문자 IE는 결코 인코딩되지 않은 상태로 표시되지 않습니다 (러시아어가 작동 함에도 불구하고).

IE에서 이전 IRI 브라우저를 지원하는 것보다 주소 표시 줄을 멋지게 만드는 방법에 대해 신경 쓰는 경우 비 ASCII 문자열을 페이지에 바로 쓰고 대역 외 ASCII 문자 만 이스케이프하십시오. 귀하의 페이지는 다른 IE 설정에서 안정적으로 작동하기 위해 UTF-8로 제공되어야하지만 실제로는 현재 어쨌든 UTF-8이어야합니다.

0

Uniform Resource Locators (URL)의 허용되는 문자를 RFC 1738으로 정의한 경우 비 라틴계 (US-ASCII가 아닌) 문자 집합을 고려하지 않습니다.

죄송합니다. 몹시 궁금합니다.하지만 모든 알파벳을 지원하는 것이 얼마나 어려울 지 고려하십시오!? 어떻게이 링크에 대한

+0

처음부터 그런 식으로 설계되었고 비 유니 코드 가능 표준에 의존하는 수백만 대의 서버에 수천 개의 다른 프로그램이 설치되어있는 경우에는 그리 어렵지 않습니다. –

+0

비 ASCII 문자는 URI에서 완벽하게 유효합니다. URL을 UTF-8로 인코딩 한 다음 URL 인코딩해야합니다. 문자 자체를 볼 수있는 양식을 IRI라고하며 모든 최신 브라우저에서 지원합니다. – bobince

+1

그래서 영어권 국가에서 생활한다는 것은 내가 이것들에 노출되어 있지 않다는 것을 의미합니다. Daniel이 제공 한 링크로 이동하여 링크 중 하나를 클릭하면 URL에서 키릴 문자를 볼 수 있습니다. ** 전에 본 적 없어요! ** 내 탄생 사고를 저주합니다. – pavium

관련 문제