Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 16009|Svare: 2

[ASP.NET] URL-koding og avkoding i ASP.NET

[Kopier lenke]
Publisert på 12.01.2016 13:04:21 | | | |

La oss se på de to følgende URL-ene, gir de de samme parameterne?
aaa.aspx?tag=.net%bc%bc%ca%f5
aaa.aspx?tag=.net%e6%8a%80%e6%9c%af

Det virker annerledes, men faktisk bruker de alle UrlEncode for ".net-teknologi", men den ene er GB2312-koding og den andre er Utf-8-koding.
Følgende kode kan oppnå den ovennevnte kodingseffekten:

streng tmp1 = System.Web.HttpUtility.UrlEncode(".net technology", System.Text.Encoding.GetEncoding("GB2312"));
streng tmp2 = System.Web.HttpUtility.UrlEncode(".net-teknologi", System.Text.Encoding.UTF8);

Våre egne nettsider kan bli kalt av andre programmer.
For eksempel må en ASP-side på operativsystemet i kinesisk forenklet en kinesisk parameter til en ASP.net side.
Som standard vil ASPs Server.UrlCode-metode på kinesiske forenklede operativsystemer kode kinesisk med GB2312-koding.
Men som standard er ASP.net sider kodet i UTF-8.
I dette tilfellet, når du bruker Request.QueryString["Tag"] for å akseptere verdien, vil du ikke kunne akseptere kinesisk informasjon, og du vil se utydelige tegn i trinnvis feilsøking.
For øyeblikket, selv om Request.QueryString["Tag"] aksepteres med utydelige tegn, er ikke URL-en på nåværende tidspunkt utydelig.

Løsningen er å analysere parameterne i URL-en selv, og deretter dekryptere verdiene til parameterne i henhold til kodingen til GB2312, i stedet for å bruke standard UTF-8-koding fra .net.
Faktisk tilbyr Microsoft tilsvarende funksjoner, så vi slipper å bruke regulære uttrykk for å analysere URL-strenger selv.

Demokoden er som følger:

streng q = Request.Url.Query;

System.Collections.Specialized.NameValueCollection nv =
System.Web.HttpUtility.ParseQueryString(q, System.Text.Encoding.GetEncoding("GB2312"));
Response.Write(nv["Tag"]);

La oss bruke Lutz Roeders .NET Reflector for å se på implementeringen av System.Web.HttpUtility.ParseQueryString-metoden:
Hvis vi fortsetter å sjekke, kan vi se at koden som til slutt håndterer URL-parameterstrenganalysen er som følger:

Følgende funksjon i System.Web.HttpValueCollection-klassen implementerer parsing av URL-parameteren
Her ser vi at det er en analyse utført av hver karakter.



Når det gjelder hvilken type kodingsmetode den andre parten gir oss, er det best å sende den som en parameter, slik at vi kan dekryptere den i henhold til denne parameteren til brukeren.




Foregående:Kommer jeg til å dekorere huset mitt til et atelier for å jobbe?
Neste:AssemblyInfo.cs den spesifikke forklaringen av filparametrene
 Vert| Publisert på 04.12.2024 17:15:50 |
.NET Core URL-koding og dekoding

 Vert| Publisert på 04.12.2024 17:35:32 |
De ulike tegnsettene kodes som følger:



Kode:



Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com