← ሁሉም መሣሪያዎች

URL ኢንኮድ እና ዲኮድ በመስመር ላይ

URLችንና ጽሑፍን በአሳሽዎ ውስጥ በፐርሰንት ኢንኮድ እና ዲኮድ ያድርጉ። የተጠበቁ ቁምፊዎችን፣ encodeURI እና encodeURIComponent ን ይረዱ፣ በአካባቢያዊ ይሰራል።

URL ኢንኮዲንግ እና ዲኮዲንግ ለገንቢዎች ተብራርቷል

ወደ URL ውስጥ ባዶ ቦታ፣ ወይም የሲሪሊክ ቃል፣ ወይም ራሱ ወደ አድራሻው ሳይሆን ወደ መረጃዎ የሚገባ አምፐርሳንድ ይተይቡ፣ የሆነ ነገር መስጠት አለበት። ድሩ ደህንነቱ የተጠበቀ ትራንስፖርት የሚያረጋግጠው ለትንሽ፣ ተገማች የASCII ፊደላት ስብስብ ብቻ ነው። ሌላው ሁሉ ራውተሮች፣ አገልጋዮች እና አሳሾች ሁሉ የሚስማሙበት ቅርጽ ውስጥ መጠቅለል አለበት። ያ ቅርጽ ፐርሰንት-ኢንኮዲንግ ይባላል፣ በጋራ URL ኢንኮዲንግ ተብሎም ይታወቃል፣ ይህ ገጽም ጽሑፍን በሁለቱም አቅጣጫ በቀጥታ በአሳሽዎ ውስጥ እንዲቀይሩ ያስችልዎታል።

ጥቁር ኢንዲጎ ዳራ ላይ የሚያበራ URL መንገድ ወደ ፐርሰንት-ኮድ የተደረገ ሄክሳዴሲማል ፊደላት ተፈትቶ
የURL መንገድ ወደ ደህና ፐርሰንት-ኮድ የተደረጉ ሦስት-ፊደላት ቡድኖች ሲቀየር።

ፐርሰንት-ኢንኮዲንግ በትክክል ምንድን ነው

ደንቡ ሜካኒካል እና ለመከተል ቀላል ነው። በቀጥታ ሊታይ የማይችል ማንኛውም ፊደል በ% ምልክት ተከትሎ የዚያ ፊደል ባይት እሴት የሚገልጹ ሁለት ሄክሳዴሲማል አሃዞች ይተካል። ባዶ ቦታ %20 ይሆናል። ፕላስ ምልክት %2B ይሆናል። ቁጥር ምልክት %23 ይሆናል። አንድ ፊደል ወደ ብዙ ባይቶች ሲቀይር፣ አብዛኞቹ ASCII-ያልሆኑ ጽሑፎች በUTF-8 ስር እንደሚያደርጉት፣ ተከታታይ ብዙ ሦስት-ፊደላት ቡድኖችን ብቻ ያገኛሉ፦ የዩሮ ምልክት ወደ %E2%82%AC ይለወጣል። ዲኮዲንግ ሂደቱን ይገለብጣል፣ እያንዳንዱን ሦስት-ፊደላት ቡድን መልሶ ወደ ኦርጅናል ባይት ያነባል።

ይህ ስምምነት በURI ስፔሲፊኬሽን (RFC 3986) ውስጥ የተገለጸ ነው እናም ሆን ተብሎ አሰልቺ ነው። አሰልቺነቱ ራሱ ነጥቡ ነው። በፕላኔቷ ላይ ያለ እያንዳንዱ በደንብ የሚሰራ የHTTP ደንበኛ እና አገልጋይ ተመሳሳይ ደንቦችን ይፈጽማል፣ ስለዚህ በአንድ ቦታ በትክክል የተኮደ ማገናኛ በሌላ ቦታ ሁሉ ሳይበላሽ ይደርሳል።

ለምን መኖር አለበት

URL ዎች ሁለት አይነት ፊደላትን ይይዛሉ በጣም የተለያዩ ስራዎች ያሏቸው። የተጠበቁ ፊደላት (reserved characters) እንደ /?#&= እና : ያሉ መዋቅራዊ ናቸው። ትንታኔ አድራጊ (parser) የመንገዱ የት እንደሚያልቅ እና የጥያቄ ጽሑፉ የት እንደሚጀምር ይነግሩታል፣ ወይም አንድ ፓራሜትር የት እንደሚያቆም እና ቀጣዩ የት እንደሚጀምር። ትክክለኛ መረጃዎ ከእነዚያ ምልክቶች አንዱን ከያዘ፣ ትንታኔ አድራጊው እንደ ስርአተ-ነጥብ እንዳይሳሳተው ኢንኮድ መደረግ አለበት። እንደ A&B/2024 ያለ የትዕዛዝ ማጣቀሻ ጥሬ ወደ ጥያቄ ጽሑፍ ውስጥ ቢጣል እንደ ሁለት ፓራሜትሮች እና የመንገድ ክፍል ተብሎ ተሳስቶ ይነበባል።

ከዚያ ደህና-ያልሆኑ እና ASCII-ያልሆኑ ፊደላት አሉ፦ ባዶ ቦታዎች፣ ጥቅስ ምልክቶች፣ ማዕዘን ቅንፎች፣ አክሰንት ያላቸው ፊደላት፣ ኢሞጂዎች፣ ከቀላል ASCII ወሰን ውጭ ያለ ማንኛውም ነገር። እነዚህ ወደ URL ውስጥ በቀጥታ የመታየት ስራ የላቸውም፣ ወይ በመተላለፍ ላይ ስለሚበላሹ ወይም የተገለጸ ውክልና ስለሌላቸው። እነሱን ኢንኮድ ማድረግ ማገናኛዎችን ንጹህና ተገማች ያደርጋቸዋል ውጤቱን ለአጋጣሚ ከመተው ይልቅ።

በእውነተኛ ስራ ላይ የት ይታያል

የጥያቄ ጽሑፎች ክላሲክ ጉዳይ ናቸው። ወደ ?key=... የሚያክሉት እያንዳንዱ እሴት ኢንኮድ መደረግ አለበት ስለዚህ የተጠቃሚ ግቤት መዋቅሩን እንዳያፈርስ። ተመሳሳይ ነገር እንደ application/x-www-form-urlencoded ተብለው ለሚላኩ የHTML ፎርም ጽሑፎችም ይተገበራል፣ አሳሹ የመስክ እሴቶችን በራስ-ሰር ኢንኮድ በሚያደርግበት (እና በታሪካዊ ስምምነት፣ ባዶ ቦታዎችን ወደ + እንጂ %20 ወደሚቀይርበት)። ላቲን-ያልሆነ ርዕስ ወዳላቸው ገጾች የሚያመለክቱ ማገናኛዎችን ሲገነቡ፣ የAPI ጥያቄዎችን በእጅ ሲገነቡ፣ የመንገድ ለውጥ ኢላማዎችን እንደ ፓራሜትሮች ሲያስተላልፉ፣ እና በአድራሻ አሞሌ ውስጥ ጥሩ የሚመስል ጥያቄ ወደ አገልጋይ ተመሳቅሎ ለምን እንደሚደርስ ሲያርሙም ያገኙታል።

URL ኢንኮዲንግን የሚወክል በሲያን እና ወርቅ የሚያበራ ቱቦ ውስጥ ደህና ሆኖ የሚፈስ የመረጃ ዥረት
ኢንኮዲንግ የዘፈቀደ ጽሑፍ በኔትወርኩ ውስጥ ደህና ሆኖ እንዲጓዝ ያስችላል።

encodeURI ከencodeURIComponent

JavaScript ሁለት ኢንኮደሮችን ያቀርባል፣ የተሳሳተውን መምረጥ የተለመደ ስህተት ነው። ልዩነቱ ስለ ወሰን ነው። encodeURIComponent ለአንድ ነጠላ የመረጃ ቁራጭ ነው፣ እንደ አንድ የጥያቄ እሴት። ይህ ማለት ይቻላል ሁሉንም ነገር ኢንኮድ ያደርጋል፣ የተጠበቁ ፊደላትንም ጨምሮ /?:@&=+ እና #። ይህ መረጃው ያንን ምልክቶች እንደ መደበኛ ጽሑፍ እንዲይዝ ሲፈቀድለት በትክክል የሚፈልጉት ነው።

encodeURI ደግሞ መስራት እንዲቀጥል ለሚፈልጉት ሙሉ አድራሻ ነው። መዋቅራዊ ፊደላትን ብቻውን ይተዋቸዋል፣ ስለዚህ URL ን አንድ ላይ የሚይዙት ስላሾች፣ ኮሎኖች እና የጥያቄ ምልክቶች ይተርፋሉ። ሙሉ URL ኖርዎት ባዶ ቦታዎችን ወይም ASCII-ያልሆኑ ፊደላትን ብቻ ማጽዳት ሲፈልጉ ይህን ይጠቀሙ፤ አንድ እሴት ወደ ትልቅ URL ውስጥ በሚያስገቡበት ጊዜ ሁሉ encodeURIComponentን ይያዙ። ቀላል ደንብ፦ ሙሉ ማገናኛውንencodeURI ኢንኮድ ያድርጉ፣ የሚያስገቡትን ክፍሎችencodeURIComponent ኢንኮድ ያድርጉ።

ሁሉም ነገር በማሽንዎ ላይ ይቆያል

ይህ መሳሪያ ሙሉ በሙሉ በአሳሽዎ ውስጥ ይካሄዳል። የሚለጥፉት ጽሑፍ በአካባቢ በተመሳሳይ መደበኛ ልማዶች ኢንኮድ ወይም ዲኮድ ይደረጋል እና በፍጹም ወደ አገልጋይ አይጓዝም፣ ይህም ማስመሰያ ኮዶችን፣ የተፈረሙ ፓራሜትሮችን ወይም በኔትወርኩ ላይ መላክ የማይፈልጉትን ማንኛውም ነገር ደህና ያደርጋል። ከሌሎች የጽሑፍ ለውጦች ጋር የሚሰሩ ከሆነ፣ የBase64 መቀየሪያ ልክ በጎን ተቀምጧል፣ ተጨማሪ የዕለት ተዕለት እገዛዎችን ለማግኘት ደግሞ ሙሉ ስብስብ የገንቢ መሳሪያዎችን ማሰስ ይችላሉ።

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

%20 በURL ውስጥ ምን ማለት ነው?

ኢንኮድ የተደረገ ባዶ ቦታ ነው። ባዶ ቦታ ፊደል በቀጥታ በURL ውስጥ አይፈቀድም፣ ስለዚህ በፐርሰንት ምልክት እና ሄክሳዴሲማል እሴት 20 ይተካል፣ ይህም የባዶ ቦታ ባይት እሴት ነው።

አንዳንድ ጊዜ ከ%20 ይልቅ ፕላስ ምልክት ለምን አያለሁ?

application/x-www-form-urlencoded አይነት የHTML ፎርም መረጃ ባዶ ቦታዎችን በታሪካዊ ስምምነት እንደ ፕላስ ምልክት ኢንኮድ ያደርጋል። በመደበኛ መንገድ ወይም ጥያቄ ውስጥ ግን ባዶ ቦታ እንደ %20 ይኮደዳል። ሁለቱም በተገቢ አውድ ውስጥ ወደ ባዶ ቦታ ይፈታሉ።

encodeURIComponent ከencodeURI ይልቅ መቼ መጠቀም አለብኝ?

ወደ URL ውስጥ የሚያስገቡት ነጠላ እሴት ላለው፣ እንደ የጥያቄ ፓራሜትር ላለው encodeURIComponent ይጠቀሙ፣ ምክንያቱም የተጠበቁ ፊደላትንም ኢንኮድ ስለሚያደርግ። ማገናኘት የሚያደርጓቸውን ስላሾች፣ ኮሎኖች እና የጥያቄ ምልክቶች ማቆየት ሲፈልጉ ለሙሉ አድራሻ encodeURI ይጠቀሙ።

URL ኢንኮዲንግ የመረጃዬን ትርጉም ይለውጣል?

አይ። ኢንኮዲንግ ሙሉ በሙሉ ሊገለበጥ የሚችል ነው። ውጤቱን ዲኮድ ማድረግ ትክክለኛውን ኦርጅናል ጽሑፍ በትክክል ይመልሳል፣ ባይት ለባይት፣ ተመሳሳይ የፊደላት ስብስብ በሁለቱም ጫፎች እስከተጠቀመ ድረስ።

እንደ አክሰንት ወይም ኢሞጂ ያሉ ASCII-ያልሆኑ ፊደላት እንዴት ይያዛሉ?

በመጀመሪያ ወደ UTF-8 ባይቶች ይለወጣሉ፣ ከዚያ እያንዳንዱ ባይት የራሱ ፐርሰንት ሦስት-ፊደላት ቡድን ይሆናል። አንድ አክሰንት ያለበት ፊደል ወይም ኢሞጂ ስለዚህ በኮደው ውጤት ውስጥ ወደ ብዙ ቡድኖች ሊሰፋ ይችላል።

ይህን መሳሪያ ስጠቀም ጽሑፌ ወደ አገልጋይ ይላካል?

አይ። ኢንኮድ ማድረግ እና ዲኮድ ማድረግ ሙሉ በሙሉ በአሳሽዎ ውስጥ ይካሄዳሉ። የሚለጥፉት ምንም ነገር አይላክም፣ ስለዚህ ከግላዊ ወይም ስሜታዊ ጽሑፎች ጋር ለመጠቀም ደህና ነው።