Golang は、さまざまな種類のデータを処理できる、効率的でシンプルかつ信頼性の高いプログラミング言語です。 Web 開発では、Golang の URL エスケープは非常に重要な機能であり、URL で特殊文字を安全に送信できるようになります。この記事では、Golang で URL エスケープを使用する方法について説明します。
Golang の URL エスケープには、組み込みの net/url パッケージを使用する必要があります。このパッケージには、Escape と Unescape という 2 つの非常に重要な関数があります。 Escape 関数は URL 内の非文字と数字をエスケープするために使用され、Unescape 関数はエスケープされた URL をデコードして元の URL に復元するために使用されます。
実際のアプリケーションでは、サーバーにパラメータを送信する必要がある場合、パラメータをエスケープする必要があり、そうしないと、サーバーがパラメータを正しく解析できない可能性があります。たとえば、「Bob&John?」という名前を送信する必要がある URL があります。この名前には特殊文字が含まれています。直接送信すると、サーバーが正しく解析できないため、パラメータをエスケープする必要があります。 Golang では、Escape 関数を使用してこのプロセスを完了できます。サンプルコードは次のとおりです。
package main import ( "fmt" "net/url" ) func main() { name := "+Bob&John?" fmt.Println(url.QueryEscape(name)) }
このプログラムを実行すると、出力結果は「+Bob&John?」になります。この文字列は、送信する必要があるエスケープされたパラメータです。
サーバーがこのパラメータを受信すると、Unescape 関数を使用してそれをデコードし、元のパラメータに復元する必要があります。次のサンプル コードは、エスケープされたパラメータをデコードする方法を示しています。
package main import ( "fmt" "net/url" ) func main() { name := "%2BBob%26John%3F" decoded, err := url.QueryUnescape(name) if err != nil { fmt.Println(err) return } fmt.Println(decoded) }
プログラムを実行すると、出力は「Bob&John?」となり、この文字列が元のパラメータです。
実際のアプリケーションでは通常、複数のパラメータをサーバーに送信する必要があるため、これらのパラメータを一定の規則に従って結合してエスケープする必要があります。 Golang では、url.Values を使用してこのプロセスを完了できます。次のサンプル コードは、複数のパラメータを連結してエスケープする方法を示しています。
package main import ( "fmt" "net/url" ) func main() { values := url.Values{} values.Set("name", "+Bob&John?") values.Set("age", "20") values.Set("gender", "male") encoded := values.Encode() fmt.Println(encoded) }
プログラムを実行すると、出力結果は「age=20&gender=male&name=+Bob&John?」となり、この文字列は送信する必要があるエスケープされたパラメータ。
要約: Golang における URL エスケープは、URL パラメータを安全に送信するのに役立つ非常に重要な機能です。 Golang では、組み込みの net/url パッケージで提供される Escape 関数と Unescape 関数を使用して、URL のエスケープおよびデコード操作を完了できます。 url.Values を使用して複数のパラメータを連結し、エスケープすることもできます。
以上がGolang での URL エスケープの使用について議論するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。