Ho un testo di query che viene codificato con JavaScript, ma ho riscontrato un caso d'uso in cui potrei dover codificare lo stesso testo sul lato server, e la codifica che sta accadendo non è la stesso. Ho bisogno che sia uguale. Ecco un esempio.Url codifica di virgolette e spazi
Inserisco "I like food"
nella casella di ricerca e premo il pulsante search
. JavaScript lo codifica come %22I%20like%20food%22
Diciamo che ottengo lo stesso valore di una stringa su un oggetto richiesta sul lato server. Assomiglierà a questo: "\"I like food\""
Quando uso HttpUtility.UrlEncode(value)
, il risultato è "%22I+like+food%22"
. Se uso HttpUtility.UrlPathEncode(value)
, il risultato è "\"I%20like%20food\""
Quindi UrlEncode
è la codifica mie citazioni, ma utilizza il carattere +
per gli spazi. UrlPathEncode
sta codificando i miei spazi ma non codifica le mie virgolette di escape.
Ho davvero bisogno di fare entrambe le cose, altrimenti il codice di ricerca è completamente su di me (e non ho controllo sul codice di ricerca).
Suggerimenti?
Eseguire una ricerca/sostituzione di stringa per sostituire gli spazi con% 20, quindi eseguire il normale UrlEncode? –
@Marc B: non renderebbe UrlEncode codificare i caratteri "%" (risultando in% 2520 per ogni spazio)? Comportamento molto strano di UrlPathEncode. Almeno UrlEncode documenta la sua conversione da spazi a "+". UrlPathEncode non sa niente sulla conversione di citazioni ... –
Hmm. buon punto. Immagino che potresti andare dall'altra parte, prima UrlEncode, poi cercare/sostituire + con% 20's –