문제

일반적으로 난 사용:

HttpContext.Current.Server.UrlEncode("url");

하지만 이것은 콘솔 응용 프로그램 HttpContext.Current 은 항상 null.

이 있는 다른 방법은 동일한 것을 사용할 수 있는?

도움이 되었습니까?

해결책

이 시도!

Uri.EscapeUriString(url);

Uri.EscapeDataString(data)

아 참조해야 하는 시스템입니다.웹.

편집: 참조하십시오 또 다른 그래서 대답에 대한 더 많은...

다른 팁

나는 아닙니다.NET 사람이다,그러나,당신은 할 수 없습니다 사용:

HttpUtility.UrlEncode Method (String)

는 여기서 설명:

HttpUtility.UrlEncode 방법(문자열)MSDN

코드에서 이안 홉킨스지 않음을 추가하지 않고도 참조하는 시스템입니다.웹.여기에 포트 C#하지 않은 사람들을 위해 사용 VB.NET:

/// <summary>
/// URL encoding class.  Note: use at your own risk.
/// Written by: Ian Hopkins (http://www.lucidhelix.com)
/// Date: 2008-Dec-23
/// (Ported to C# by t3rse (http://www.t3rse.com))
/// </summary>
public class UrlHelper
{
    public static string Encode(string str) {
        var charClass = String.Format("0-9a-zA-Z{0}", Regex.Escape("-_.!~*'()"));
        return Regex.Replace(str, 
            String.Format("[^{0}]", charClass),
            new MatchEvaluator(EncodeEvaluator));
    }

    public static string EncodeEvaluator(Match match)
    {
        return (match.Value == " ")?"+" : String.Format("%{0:X2}", Convert.ToInt32(match.Value[0]));
    }

    public static string DecodeEvaluator(Match match) {
        return Convert.ToChar(int.Parse(match.Value.Substring(1), System.Globalization.NumberStyles.HexNumber)).ToString();
    }

    public static string Decode(string str) 
    {
        return Regex.Replace(str.Replace('+', ' '), "%[0-9a-zA-Z][0-9a-zA-Z]", new MatchEvaluator(DecodeEvaluator));
    }
}

당신이 사용하고 싶

System.Web.HttpUtility.urlencode("url")

는지 확인 당신이 시스템입니다.웹 중 하나로 프로젝트에서 참조.나는 생각하지 않으로 포함되어 있 참조에 의해서 기본적으로 콘솔 응용 프로그램.

사용하십시오 UrlEncode 방법에 HttpUtility 클래스입니다.

  1. http://msdn.microsoft.com/en-us/library/system.web.httputility.urlencode.aspx

내가 달렸으로 이 문제를 신고보다는 추가 시스템입니다.웹 어셈블리 나의 프로젝트가 등을 위한 인코딩/디코딩 Url(그것의 아주 간단하고,나는 몇 가지 테스트,하지만 많은).내가 포함되어의 소스 코드는 아래.하십시오:는 의견을 남기고 상단에 다시 사용할 경우,이 비난하지 않는 경우에 저는 그것을 나누기,배우로서의 코드입니다.

''' <summary>
''' URL encoding class.  Note: use at your own risk.
''' Written by: Ian Hopkins (http://www.lucidhelix.com)
''' Date: 2008-Dec-23
''' </summary>
Public Class UrlHelper
    Public Shared Function Encode(ByVal str As String) As String
        Dim charClass = String.Format("0-9a-zA-Z{0}", Regex.Escape("-_.!~*'()"))
        Dim pattern = String.Format("[^{0}]", charClass)
        Dim evaluator As New MatchEvaluator(AddressOf EncodeEvaluator)

        ' replace the encoded characters
        Return Regex.Replace(str, pattern, evaluator)
    End Function

    Private Shared Function EncodeEvaluator(ByVal match As Match) As String
    ' Replace the " "s with "+"s
        If (match.Value = " ") Then
            Return "+"
        End If
        Return String.Format("%{0:X2}", Convert.ToInt32(match.Value.Chars(0)))
    End Function

    Public Shared Function Decode(ByVal str As String) As String
        Dim evaluator As New MatchEvaluator(AddressOf DecodeEvaluator)

        ' Replace the "+"s with " "s
        str = str.Replace("+"c, " "c)

        ' Replace the encoded characters
        Return Regex.Replace(str, "%[0-9a-zA-Z][0-9a-zA-Z]", evaluator)
    End Function

    Private Shared Function DecodeEvaluator(ByVal match As Match) As String
        Return "" + Convert.ToChar(Integer.Parse(match.Value.Substring(1), System.Globalization.NumberStyles.HexNumber))
    End Function
End Class

WebUtility.UrlEncode(string)System.Net 네임스페이스

Kibbee 제공하는 실제 대답이다.Yes,HttpUtility.UrlEncode 은 오른쪽 방법을 사용하지만을 기본적으로 사용할 수 있 콘솔 응용 프로그램입니다.당신 참조를 추가하는 시스템입니다.웹.지

  1. 에서 당신의 솔루션 탐색기에서 오른쪽 클릭하여 참조
  2. 선택하"추가 기준"
  3. 에서"추가"를 참조 대화 상자를 사용하여.NET 탭
  4. 아래로 스크롤하는 시스템입니다.웹사를 선택하는 것,그리고 확인을 누르십시오

지금 사용할 수 있습니다 UrlEncode 방법입니다.당신은 여전히 추가하려면,

사용하는 시스템입니다.웹사

의 맨 위에 콘솔 응용 프로그램 또는 전체를 사용할 때 네임스페이스 메소드를 호출,

시스템입니다.웹.HttpUtility.UrlEncode(someString)

HttpUtility.UrlEncode("url")의 시스템입니다.웹.

를 사용하여 정적 HttpUtility.UrlEncode 방법입니다.

최고의 것을 추가하는 것이 참조하여 System.web..dll

고 사용 var EncodedUrl=시스템입니다.웹.HttpUtility.UrlEncode("URL_TEXT");

당신을 찾을 수 있습니다에서 파일 System.web.dll

Uri.EscapeUriString 사용할 수 없습 탈출을 위해 문자열을 전달되는 URL 하지 않는 인코딩으로 모든 문자를 기대할 수 있습니다.에'+'좋은 예지 않은 탈출했다.그런 다음 이로 변환되는 공간에서 URL 이 때문에 그것이 무엇을 의미에서 간단한 URI.분명히 그 원인이 대규모 문제 분 당신이 시도하고 통과 같은 기본 64 로 인코딩된 문자열에는 URL 공간을 통해 모두 표시 문자열을 책임지지 않습니다.

당신이 사용할 수 있습 HttpUtility.UrlEncode 추가 필요한 참조하여 귀하의 프로젝트(너와 통신하는 웹 응용 프로그램을 다음을 이유가 없는 이렇게 해서는 안 됩).

또한 사용을 Uri.EscapeDataString 통해 Uri.EscapeUriString 설명했듯이 여기에 아주 잘: https://stackoverflow.com/a/34189188/7391

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