Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melarikan diri url golang

Bagaimana untuk melarikan diri url golang

PHPz
PHPzasal
2023-04-05 13:47:331977semak imbas

Di Golang, URL escape ialah proses menukar rentetan URL kepada rentetan selamat URL. Rentetan URL ialah rentetan yang menggabungkan pelbagai aksara, termasuk huruf, nombor, simbol, dsb. Walau bagaimanapun, URL HTTP perlu ditukar kepada rentetan selamat untuk memastikan tiada masalah akan berlaku semasa penghantaran rangkaian, yang memerlukan melepaskan rentetan URL.

Terdapat dua kaedah melarikan diri untuk melarikan diri URL, satu adalah untuk melarikan diri daripada aksara yang dikhaskan dan yang lain adalah untuk melarikan diri daripada aksara bukan ASCII. Kedua-dua kaedah melarikan diri ini digunakan untuk mengelakkan ralat yang disebabkan oleh aksara khas dalam rentetan URL.

Escape reserved characters

Reserved characters merujuk kepada aksara dengan makna istimewa dalam rentetan URL, seperti ruang, bar menegak, tanda soal, tanda peratus, dsb. Aksara ini perlu dilepaskan apabila digunakan dalam URL.

Di Golang, URL escaping menyediakan dua kaedah, satu ialah menggunakan fungsi Escape dalam pakej net/url, dan satu lagi ialah menggunakan fungsi EscapeString. Fungsi Escape digunakan untuk melepaskan aksara khas dalam rentetan URL, dan fungsi EscapeString digunakan untuk melepaskan keseluruhan rentetan URL. Berikut ialah contoh:

package main

import (
    "fmt"
    "net/url"
)

func main() {
    urlString := "http://www.example.com/path with spaces"
    escapedString := url.QueryEscape(urlString)
    fmt.Println("Escaped string:", escapedString)
}

Hasil output ialah:

Escaped string: http%3A%2F%2Fwww.example.com%2Fpath+with+spaces

Seperti yang anda lihat, ruang dilepaskan ke "+", dan aksara seperti titik bertindih, garis miring dan tempoh Escaped kepada nilai kod ASCIInya.

Meloloskan diri aksara bukan ASCII

Selain aksara tempah yang perlu dilepaskan, anda juga perlu memberi perhatian kepada pelarian aksara bukan ASCII apabila menggunakan URL. Aksara bukan ASCII merujuk kepada aksara dalam jadual pengekodan Unicode Aksara ini perlu dilupuskan dengan menukarnya kepada bentuk %HH, dengan HH mewakili nilai perenambelasan aksara dalam jadual pengekodan Unikod.

Di Golang, URL yang melarikan diri daripada aksara bukan ASCII memerlukan penggunaan fungsi PathEscape dalam pakej net/url Kod sampel adalah seperti berikut:

package main

import (
    "fmt"
    "net/url"
)

func main() {
    urlString := "http://www.example.com/你好"
    escapedString := url.PathEscape(urlString)
    fmt.Println("Escaped string:", escapedString)
}

Hasil output ialah:

Escaped string: http://www.example.com/%E4%BD%A0%E5%A5%BD

Seperti yang anda boleh lihat, aksara bukan ASCII "Hello" dikeluarkan dalam bentuk %E4%BD%A0%E5%A5%BD, iaitu nilai heksadesimal bagi aksara dalam jadual pengekodan Unicode.

Ringkasan

Di Golang, URL melarikan diri adalah kemahiran yang sangat penting. Dengan melarikan diri daripada aksara tersimpan dan aksara bukan ASCII dalam rentetan URL, anda boleh memastikan bahawa tidak akan ada masalah semasa penghantaran rangkaian. Dalam pembangunan sebenar, adalah perlu untuk mempunyai pemahaman yang mendalam tentang peraturan melarikan diri URL untuk mengurangkan ralat pengekodan URL.

Atas ialah kandungan terperinci Bagaimana untuk melarikan diri url golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn