C #에서 모든 공백을 % 20으로 어떻게 바꾸나요?
C #을 사용하여 문자열을 URL로 만들고 싶습니다. .NET 프레임 워크에 도움이되는 무언가가 있어야합니다. 그렇죠?
나는 당신이 HttpServerUtility.UrlEncode을 찾고 있다고 믿습니다 .
System.Web.HttpUtility.UrlEncode(string url)
이를 수행하는 또 다른 방법은 Uri.EscapeUriString(stringToEscape)
.
나는 유용하다고 생각했다 System.Web.HttpUtility.UrlPathEncode(string str);
공백을 +가 아닌 % 20으로 대체합니다.
공백과 나머지 특수 문자를 올바르게 이스케이프하려면을 사용하십시오 System.Uri.EscapeDataString(string stringToEscape)
.
승인 된 스토리에 대해 언급했듯이 HttpServerUtility.UrlEncode 메서드는 공백을 % 20 대신 +로 바꿉니다. 대신 다음 두 메서드 중 하나를 사용합니다. Uri.EscapeUriString () 또는 Uri.EscapeDataString ()
샘플 코드 :
HttpUtility.UrlEncode("https://mywebsite.com/api/get me this file.jpg")
//"https%3a%2f%2fmywebsite.com%2fapi%2fget+me+this+file.jpg"
Uri.EscapeUriString("https://mywebsite.com/api/get me this file.jpg");
//"https://mywebsite.com/api/get%20me%20this%20file.jpg"
Uri.EscapeDataString("https://mywebsite.com/api/get me this file.jpg");
//"https%3A%2F%2Fmywebsite.com%2Fapi%2Fget%20me%20this%20file.jpg"
//When your url has a query string:
Uri.EscapeUriString("https://mywebsite.com/api/get?id=123&name=get me this file.jpg");
//"https://mywebsite.com/api/get?id=123&name=get%20me%20this%20file.jpg"
Uri.EscapeDataString("https://mywebsite.com/api/get?id=123&name=get me this file.jpg");
//"https%3A%2F%2Fmywebsite.com%2Fapi%2Fget%3Fid%3D123%26name%3Dget%20me%20this%20file.jpg"
사용하다 HttpServerUtility.UrlEncode
나도이 작업을 수행해야했고 몇 년 전에이 질문을 찾았지만 질문 제목과 텍스트가 일치 하지 않으며 통과에 대해 이야기하지 않는 한 Uri.EscapeDataString
or UrlEncode
(저건 사용하지 마세요!)를 사용하는 것은 일반적으로 의미가 없습니다. 다른 URL에 대한 매개 변수로서의 URL.
(예 : 오픈 ID 인증, Azure AD 등을 수행 할 때 콜백 URL 전달)
이것이 질문에 대한 좀 더 실용적인 대답 이길 바랍니다. C #을 사용하여 문자열을 URL로 만들고 싶습니다. .NET 프레임 워크에 도움이되는 것이 있어야합니다. 맞습니까?
예 -두 가지 함수는 C #에서 URL 문자열을 만드는 데 유용합니다.
String.Format
URL 형식 지정Uri.EscapeDataString
URL의 매개 변수 이스케이프
이 코드
String.Format("https://site/app/?q={0}&redirectUrl={1}",
Uri.EscapeDataString("search for cats"),
Uri.EscapeDataString("https://mysite/myapp/?state=from idp"))
이 결과를 생성
https://site/app/?q=search%20for%20cats&redirectUrl=https%3A%2F%2Fmysite%2Fmyapp
브라우저의 주소 표시 줄 또는 src
HTML A
태그 의 속성에 안전하게 복사하여 붙여 넣거나와 함께 사용 curl
하거나 QR 코드 등으로 인코딩 할 수 있습니다.
HttpUtility.UrlEncode 메서드 (문자열)
아래 코드는 반복되는 공백을 단일 % 20 문자로 바꿉니다.
예:
입력은 다음과 같습니다.
Code by Hitesh Jain
산출:
Code%20by%20Hitesh%20Jain
암호
static void Main(string[] args)
{
Console.WriteLine("Enter a string");
string str = Console.ReadLine();
string replacedStr = null;
// This loop will repalce all repeat black space in single space
for (int i = 0; i < str.Length - 1; i++)
{
if (!(Convert.ToString(str[i]) == " " &&
Convert.ToString(str[i + 1]) == " "))
{
replacedStr = replacedStr + str[i];
}
}
replacedStr = replacedStr + str[str.Length-1]; // Append last character
replacedStr = replacedStr.Replace(" ", "%20");
Console.WriteLine(replacedStr);
Console.ReadLine();
}
문서에서 :
String TestString = "This is a <Test String>.";
String EncodedString = Server.HtmlEncode(TestString);
그러나 이것은 실제로 URL이 아닌 HTML을 인코딩합니다. 대신 UrlEncode (TestString)을 사용하십시오 .
참고 URL : https://stackoverflow.com/questions/1517586/how-do-i-replace-all-the-spaces-with-20-in-c
'Nice programing' 카테고리의 다른 글
PostgreSQL에서 다 대다 관계를 구현하는 방법은 무엇입니까? (0) | 2020.11.12 |
---|---|
변경 불가능한 비트 맵 충돌 오류 (0) | 2020.11.12 |
추상화와 캡슐화는 어떻게 다릅니 까? (0) | 2020.11.12 |
PyQt에서 QThread가있는 백그라운드 스레드 (0) | 2020.11.12 |
* .mdf 파일을 데이터베이스로 연결할 수 없습니다. (0) | 2020.11.12 |