나는 현재 HyperLink
컨트롤의 NavigateUrl
속성에 (동적으로) 전달 된 파일 경로를 처리하는 방법을 알아내는 데 어려움을 겪고 있습니다.ASP.NET의 HyperLink.NavigateUrl에서 특수 문자를 다루는 방법?
의 루트에서 jäynä.txt
이라는 파일을 참조하려고한다고 가정 해 봅시다.
"file:///C:/jäynä.txt"
결과는 file:///C:/jäynä.txt
으로 연결되며, 결과는 HttpUtility.UrlPathEncode("file:///C:/jäynä.txt")
입니다. 문자열 "file:///C:/j%E4yn%E4.txt"
를 제공 ** %E4
, 함께 ä
**의 교체
, file:///C:/jäynä.txt
에 일 연결을 준다,하지만 난 그것을 자신을 정의하지 않고 교체 할 수있는 방법을 찾을 수 없어. 예를 들어, Replace("ä", "%E4")
.
HyperLink
이 문자열에서 바꿀 문자를 수동으로 나열하지 않고 파일 경로 문자열을 자동으로 처리하여 올바르게 표시 할 수 있습니까?
추가 참고 :
디버깅이 HyperLink
적어도 문자열 "file:///C:/jäynä.txt"
변경을 절약 할 수 있음을 보여 주지만, 어떻게 든 그것을 엉망으로하기 때문에, 페이지가 렌더링되는 문자 인코딩을 spesifying에 의해이 문제를 해결하는 방법이있을 수 있습니다 렌더링 시간 전후.
그러나이 만하여 NavigateUrl
때문에 다른 구성 요소의 렌더링의 경우뿐만 아니라이 될 것 같다 HyperLink
의 Text
-property ä
변경 문자를 렌더링의 모든 확실히 할 수있다.
아니요, 브라우저라고 생각하지 않습니다. href = "file : /// C : /j%c3%a4yn%c3%a4.txt", 이는 서버가 렌더링 한 방법을 제안합니다. 첫 번째 장소. 당신은 어려운 해결책에 바로 있을지도 모릅니다. – vipirtti
간접적으로 BrowserCaps 또는 브라우저와 유사한 시스템을 기반으로하는 브라우저 일 수 있습니다. 그럼에도 NavigateUrl에 지정한 값은 미리 정리해야합니다. 그것은 UrlEncode와 함께 자동으로 아무것도하지 않기 때문에 문서화되어 있습니다. –