ነጻ መለወጫ

URL ኢንኮደር / ዲኮደር

በአሳሽዎ ውስጥ ዩአርኤሎችን እና የዩአርአይ አካላትን ኮድ ያድርጉ እና ይግለጹ። ነጻ፣ የግል እና ምንም ሰቀላ አያስፈልግም።

ወይም

ስላዚህ መሳሪያ

URL ኢንኮዲንግ (በመደበኛው መቶኛ ኢንኮዲንግ፣ በ RFC 3986 ውስጥ የተገለጸ) በዩአርኤሎች ውስጥ ልዩ ትርጉም ያላቸውን ገጸ-ባህሪያት - ቦታዎች፣ slashs፣ ampersands፣ hash marks - በመቶ ምልክቶችን በሄክስ አሃዞች ተከትሎ ወደ አስተማማኝ ቅጽ ይተረጉማል። የጠፈር ቁምፊው %20 ይሆናል (ወይም + በቅጽ-የተመሰጠሩ አውዶች)፣ አምፐርሳንድ %26 እና የመሳሰሉት ይሆናል። ያለዚህ ኢንኮዲንግ፣ ልዩ ቁምፊዎች እንደ ዩአርኤል አገባብ ይተረጎማሉ፣ እንደ ቀጥተኛ ውሂብ፣ ዩአርኤሉን መስበር ወይም ያልታሰበ ባህሪ ከመፍጠር ይልቅ።

ሁለት ተዛማጅ ግን የተለዩ ኢንኮዲንግዎች አሉ። መደበኛው የዩአርኤል ክፍል ኢንኮዲንግ %-escapes ካልተያዙ የቁምፊ ስብስብ ውጭ ላሉ ነገሮች ሁሉ ይጠቀማል፡- A-Z፣ a-z፣ 0-9፣ hyphen፣ underscore፣ period፣ tilde። በቅጹ የተመሰጠረው ተለዋጭ (መተግበሪያ/x-www-ፎርም-urlencoded) በተጨማሪ ቦታዎችን እንደ ተጨማሪ ምልክቶች ይመለከታል እና ለተወሰኑ ሌሎች ቁምፊዎች የተለያዩ ህጎችን ይጠቀማል። የJavaScript's encodeURIComponent ጥብቅ ክፍል ኢንኮዲንግ ይጠቀማል። encodeURI የዩአርኤል መዋቅር ቁምፊዎችን የሚጠብቅ የበለጠ ፈቃጅ ይጠቀማል።

ይህ መሳሪያ ሁለቱንም ኢንኮዲንግ እና ዲኮዲንግ ያቀርባል። ኢንኮድ ሁነታ ማምለጥን በ%HH ቅርጸት የሚፈልገውን እያንዳንዱን ቁምፊ ይጠቀለላል; ዲኮድ ሁነታ ለውጡን ይለውጣል. ሁለቱም አብሮ የተሰሩ የጃቫስክሪፕት ዩአርኤል ተግባራትን በመጠቀም በአሳሽዎ ውስጥ ይሰራሉ ​​\u200b\u200bስለዚህ ምንም ውሂብ ወደ የትኛውም ቦታ አይላክም።

ለምን ዩአርኤሎችን መመስጠር ወይም መፍታት

በማንኛውም ጊዜ ውሂብ በዩአርኤል ውስጥ ይካተታል - የመጠይቅ ሕብረቁምፊ ግቤቶች፣ የተጠቃሚ ግብዓት የያዙ የመንገድ ክፍሎች፣ ዒላማዎችን አቅጣጫ ይቀይሩ - ትክክለኛ ኢንኮዲንግ ያስፈልጋል። ኢንኮድ ማድረግ አለመቻል ልዩ ቁምፊዎች ሲታዩ የሚበላሹ፣ የመለኪያ ድንበሮችን ወደ መጠይቅ ሕብረቁምፊዎች የሚያፈሱ (&x=1 ወደ የተለየ መለኪያ በመቀየር) ወይም በድር አገልጋዮች የተበላሹ ጥያቄዎች እንደታገዱ ዩአርኤሎችን ይፈጥራል።

መፍታት የተገላቢጦሽ ነው፡ ዋናውን ውሂብ ከተቀጠረ ዩአርኤል ማውጣት። የአሳሽ አድራሻ አሞሌዎች ብዙውን ጊዜ ዩአርኤሎችን በኮድ መልክ ያሳያሉ። ዲኮዲንግ በእውነቱ የታሰበውን ያሳያል። ምዝግብ ማስታወሻ, ማረም እና የደህንነት ትንተና ሁሉም የመጀመሪያ መለኪያዎች እና መንገዶችን ከሚያሳዩ ዲኮድ ከተደረጉ ዩአርኤሎች ይጠቀማሉ.

እንዴት ይጠቀሙ

ሕብረቁምፊ ለጥፍ፣ አቅጣጫ ይምረጡ።

  1. ኮድ ወይም ኮድ መፍታትን ይምረጡ: ኢንኮድ ደህንነታቸው ያልተጠበቁ ቁምፊዎችን በ%HH ቅርጸት ያጠቃልላል። ኮድ መፍታት %HH ወደ ቀጥተኛ ቁምፊዎች ይመለሳል።
  2. የግቤት ጽሑፍ ያክሉ: ለመመስጠር ወይም ለመለያየት ሕብረቁምፊውን ለጥፍ። ለኢኮዲንግ፣ ይህ በተለምዶ ክፍት ቦታ፣ ልዩ ቁምፊዎች ወይም ASCII ያልሆነ ይዘት ያለው ትክክለኛ እሴት ነው። ለመግለፅ ይህ %HH ማምለጫዎችን የያዘ ዩአርኤል ወይም ዩአርኤል አካል ነው።
  3. ቀይር: መሳሪያው encodeURIComponent ወይም decodeURIComponent ይተገበራል። የተመሰጠረ ውፅዓት በዩአርኤል ውስጥ ለመክተት ደህንነቱ የተጠበቀ ነው። ዲኮድ የተደረገው ውፅዓት የመጀመሪያው ቀጥተኛ እሴት ነው።
  4. ቅዳ ወይም አውርድ: ውጤቱን በሚፈልጉበት ቦታ ይጠቀሙ. የተመሰጠሩት እሴቶች ከዩአርኤሎች ጋር ይጣጣማሉ; ዲኮድ የተደረጉ እሴቶች ዋናውን ውሂብ ያሳያሉ።

የተለመዱ የአጠቃቀም ጉዳዮች

ቴክኒካዊ ዝርዝሮች

encodeURIComponent እያንዳንዱን ቁምፊ ከማይያዘው ስብስብ [A-Za-z0-9-_.~] ውጪ ያደርገዋል። ክፍተቶች %20 ይሆናሉ፣ እና ምልክቶች %2B ይሆናሉ፣ እኩል ምልክቶች %3D ይሆናሉ፣ እና የመሳሰሉት። ከ ASCII ውጪ ያሉ ቁምፊዎች መጀመሪያ በUTF-8 ውስጥ ተቀምጠዋል ከዚያም እያንዳንዱ ባይት % - አምልጧል።

encodeURI የበለጠ የተፈቀደ ነው እና ከክፍሎች ይልቅ ለሙሉ ዩአርኤሎች የታሰበ ነው። አያመልጥም /፣ ?፣ &, =, # እና ሌሎች ጥቂት ምክንያቱም እነዚያ ቁምፊዎች URL-አገባብ ትርጉም ስላላቸው። የተጠቃሚ ውሂብን በዩአርኤል ውስጥ ለመክተት፣ encodeURIComponent ሁልጊዜ ማለት ይቻላል ትክክለኛው ምርጫ ነው።

ዲኮድURIComponent % -escapesን ይለውጣል፣ እያንዳንዱ ማምለጫ በደንብ መፈጠሩን እና የተገኘው ባይት ትክክለኛ UTF-8 መሆኑን ያረጋግጣል። የተሳሳተ ግቤት ቆሻሻን ከማምረት ይልቅ ስህተትን ይጥላል።

ምርጥ ልምዶች

በተደጋጋሚ የሚጠየቁ ጥያቄዎች

ዩአርኤል ኮድ ማድረግ የሚያስፈልጋቸው ቁምፊዎች የትኞቹ ናቸው?
የተያዙ ቁምፊዎች (&, =, ?, #, /, :, @) እና ደህንነታቸው ያልተጠበቁ ቁምፊዎች (spaces, <, >, {, }, |, ^, ~, [,], `) መመሳጠር አለባቸው። የፊደል ቁጥሮች እና -_.~ ደህንነታቸው የተጠበቀ ናቸው እና ኮድ ማድረግ አያስፈልጋቸውም።
በ encodeURI እና encodeURIComponent መካከል ያለው ልዩነት ምንድን ነው?
encodeURI ሙሉ ዩአርኤልን ይደብቃል ነገር ግን የተያዙ ቁምፊዎችን (//?#) ያስቀምጣል። encodeURIComponent ከ -_.!~*'() በስተቀር ሁሉንም ነገር ይደብቃል - ለመጠይቁ ግቤት እሴቶች ይጠቀሙ። ይህ መሳሪያ ሁለቱንም ሁነታዎች ያቀርባል.
ክፍተቶች በዩአርኤሎች ውስጥ እንዴት ነው የሚቀመጡት?
ክፍተቶች እንደ %20 (መደበኛ መቶኛ ኢንኮዲንግ) ወይም + (ቅጽ ኢንኮዲንግ) ሆነው ሊመደቡ ይችላሉ። %20 ለዩአርኤል ዱካዎች ትክክል ነው፣+ ደግሞ ከኤችቲኤምኤል ቅጾች በመጠይቅ ሕብረቁምፊዎች ውስጥ ጥቅም ላይ ይውላል። ይህ መሳሪያ በነባሪ %20 ይጠቀማል።
የዩኒኮድ ቁምፊዎችን መደበቅ እችላለሁ?
አዎ። የዩኒኮድ ፊደላት መጀመሪያ ወደ UTF-8 ባይት ተቀምጠዋል፣ ከዚያም እያንዳንዱ ባይት በመቶ-የተመሰጠረ ነው። ለምሳሌ፣ '日' %E6%97%A5 ይሆናል (ሶስት UTF-8 ባይት፣ እያንዳንዱ በመቶ-የተመሰጠረ)።
encodeURI ወይም encodeURIComponent መጠቀም አለብኝ?
ሁልጊዜ ማለት ይቻላል URIComponent ን ኮድ ያድርጉ። ሙሉ ዩአርኤል ካለዎት እና አወቃቀሩን ለመጠበቅ ከፈለጉ ብቻ ኢንኮድዩሪን ይጠቀሙ - ለማንኛውም ከክፍሎች ዩአርኤሎችን ስለገነቡ ብዙም ያልተለመደ።
የእኔ ውሂብ ወደ አገልጋይ ተሰቅሏል?
አይ፡ የዩአርኤል ኮድ ማድረጉ እና መፍታት ሙሉ በሙሉ በአሳሽዎ ውስጥ ይከሰታል።
የዩኒኮድ ስሜት ገላጭ ምስሎችን ይይዛል?
አዎ። ኢሞጂ ባለብዙ ባይት UTF-8 ቅደም ተከተሎች ናቸው; ኢንኮደር % ያመለጡ ባይቶች ሰንሰለት ያመነጫል ይህም ዲኮደሮች ወደ መጀመሪያው ስሜት ገላጭ ምስል በትክክል የሚሰበሰቡ ናቸው።
የእኔ ግቤት በትክክል ያልተቀመጡ %HH የሚመስሉ ሕብረቁምፊዎች ቢኖረውስ?
ኢንኮዲንግ እያንዳንዱን % ወደ %25 ይቀየራል፣ ከዚያ ለቀሪው ማምለጥን እንደገና ይተገበራል። ጥብቅ ግቤትን መፍታት በተበላሹ ማምለጫዎች ላይ ስህተቶችን ይጥላል; አሻሚ የሚመስሉ ሕብረቁምፊዎች በስህተት መፍታት ይችላሉ።