URL ఎన్కోడ్ & డీకోడ్
టెక్స్ట్ను URLలో సురక్షితంగా పెట్టేలా మార్చండి, లేదా %20 లాంటి సీక్వెన్స్లను మళ్లీ చదవగలిగే అక్షరాలుగా మార్చండి. ఈ టూల్ మీ బ్రౌజర్లోనే ఉన్న encodeURIComponent, encodeURI, decodeURIComponentలను ఉపయోగిస్తుంది, క్వెరీ పారామీటర్లను టేబుల్లో చూపిస్తుంది, ఏదీ సర్వర్కు పంపదు.
0 అక్షరాలు · 0 పదాలు · 0 లైన్లు
0 అక్షరాలు · 0 పదాలు · 0 లైన్లు
పూర్తిగా ఈ బ్రౌజర్ ట్యాబ్లోనే నడుస్తుంది. మీ టెక్స్ట్ అప్లోడ్ లేదా నిల్వ చేయబడదు.
ప్రతి ఫంక్షన్ ఎస్కేప్ చేసేవి
బ్రౌజర్ ఫంక్షన్లతోనే లెక్కించబడింది. encodeURIComponent అక్షరాలు, అంకెలు, ఈ గుర్తులను మార్చదు: ! ' ( ) * - . _ ~
| అక్షరం | encodeURIComponent | encodeURI |
|---|---|---|
(స్పేస్) | %20 | %20 |
! | ! | ! |
" | %22 | %22 |
# | %23 | # |
$ | %24 | $ |
% | %25 | %25 |
& | %26 | & |
' | ' | ' |
( | ( | ( |
) | ) | ) |
* | * | * |
+ | %2B | + |
, | %2C | , |
/ | %2F | / |
: | %3A | : |
; | %3B | ; |
= | %3D | = |
? | %3F | ? |
@ | %40 | @ |
[ | %5B | %5B |
] | %5D | %5D |
{ | %7B | %7B |
} | %7D | %7D |
| | %7C | %7C |
\ | %5C | %5C |
^ | %5E | %5E |
` | %60 | %60 |
< | %3C | %3C |
> | %3E | %3E |
~ | ~ | ~ |
- | - | - |
_ | _ | _ |
. | . | . |
é | %C3%A9 | %C3%A9 |
€ | %E2%82%AC | %E2%82%AC |
😀 | %F0%9F%98%80 | %F0%9F%98%80 |
పర్సెంట్-ఎన్కోడింగ్, RFC 3986లోని రిజర్వ్డ్ అక్షరాలు
URLలో పరిమిత సంఖ్యలోని ASCII అక్షరాలు మాత్రమే ఉండవచ్చు. URI సింటాక్స్ కోసం 2005లో వచ్చిన స్పెసిఫికేషన్ RFC 3986 వాటిని రెండు సమూహాలుగా విభజిస్తుంది. అన్రిజర్వ్డ్ అక్షరాలు, అంటే A–Z, a–z, 0–9 మరియు నాలుగు చిహ్నాలు - . _ ~, ఎప్పుడూ ఎన్కోడ్ చేయాల్సిన అవసరం లేదు. రిజర్వ్డ్ అక్షరాలకు ప్రత్యేక పని ఉంటుంది: సాధారణ డిలిమిటర్లు : / ? # [ ] @ స్కీమ్, హోస్ట్, పాత్, క్వెరీ, ఫ్రాగ్మెంట్లను వేరు చేస్తాయి, సబ్-డిలిమిటర్లు ! $ & ' ( ) * + , ; = వాటిలోని అంశాలను వేరు చేస్తాయి, క్వెరీ స్ట్రింగ్లో & మరియు = చేసినట్లు. మిగతా అన్ని అక్షరాలు, అలాగే సాధారణ డేటాగా వాడిన ఏ రిజర్వ్డ్ అక్షరమైనా పర్సెంట్-ఎన్కోడ్ చేయాలి.
పర్సెంట్-ఎన్కోడింగ్ ఒక బైట్ను % తర్వాత రెండు హెక్సాడెసిమల్ అంకెలుగా రాస్తుంది. టెక్స్ట్ ముందుగా UTF-8కు మారుతుంది, కాబట్టి స్పేస్ %20 అవుతుంది, é (రెండు బైట్లు) %C3%A9 అవుతుంది, ఎమోజీ నాలుగు %XX గ్రూపులు అవుతుంది. అందుకే "café & bar" కోసం వెతికితే లింక్లో caf%C3%A9%20%26%20bar అని వస్తుంది: సర్వర్ దాన్ని కొత్త పారామీటర్ ప్రారంభంగా చదవకుండా & ఎన్కోడ్ అవుతుంది.
encodeURIComponent, encodeURI, డీకోడింగ్
encodeURIComponent క్వెరీ విలువ, పాత్ సెగ్మెంట్ లేదా పారామీటర్గా పంపే రీడైరెక్ట్ URL వంటి ఒక్క భాగానికి సరైన ఎంపిక. ఇది అన్రిజర్వ్డ్ అక్షరాలు మరియు ! ' ( ) * తప్ప అన్నింటినీ ఎస్కేప్ చేస్తుంది; ఆ చివరివాటిని JavaScript చారిత్రక కారణాల వల్ల వదిలేస్తుంది. encodeURI (మొత్తం URL) ఇన్పుట్ ఇప్పటికే పూర్తి చిరునామా అని భావించి రిజర్వ్డ్ అక్షరాలను అలాగే ఉంచుతుంది, కాబట్టి https://example.com/a b?q=1లో స్పేస్ మాత్రమే ఎన్కోడ్ అవుతుంది. పారామీటర్ విలువపై encodeURI వాడటం సాధారణ పొరపాటు: విలువలోని & లేదా # అలాగే ఉండి URLను పాడు చేస్తాయి.
డీకోడ్ ఈ రెండు ఫంక్షన్లలో దేన్నైనా వెనక్కి మారుస్తుంది. GETతో సబ్మిట్ చేసిన HTML ఫారమ్లు పాత application/x-www-form-urlencoded ఫార్మాట్ వాడతాయి, అందులో స్పేస్ను %20కి బదులు + గా రాస్తారు; వాటి కోసం Treat + as a space టిక్ చేసి ఉంచండి, ఫోన్ నంబర్లో లాగా అసలు ప్లస్ గుర్తు ముఖ్యమైతే టిక్ తీసివేయండి. ఇన్పుట్లో రెండు హెక్స్ అంకెలు లేని % ఉన్నా, లేదా చెల్లని UTF-8 బైట్లు ఉన్నా, డీకోడింగ్ ఊహించకుండా స్పష్టమైన సందేశంతో విఫలమవుతుంది. టెక్స్ట్లో క్వెరీ స్ట్రింగ్ ఉంటే, దాని పారామీటర్లు టూల్ కింద పట్టికలో డీకోడ్ అయి కనిపిస్తాయి. URLలలో బైనరీ డేటా కోసం Base64url సాధారణ ప్రత్యామ్నాయం.
తరచుగా అడిగే ప్రశ్నలు
- URLలో స్పేస్ %20గా ఉండాలా లేక ప్లస్ గుర్తుగా ఉండాలా?
- పాత్లలో మరియు RFC 3986 ప్రకారం స్పేస్ %20. + రూపం HTML ఫారమ్లు ఎన్కోడ్ చేసే విధానంలోని క్వెరీ స్ట్రింగ్లలో మాత్రమే స్పేస్ అని అర్థం, కాబట్టి ప్రతిచోటా %20 సురక్షిత ఎంపిక.
- నా URLలో %2520 ఎందుకు వచ్చింది?
- అది రెండుసార్లు ఎన్కోడ్ అయింది. మొదటి పాస్లో స్పేస్ %20 అయింది, రెండోదానిలో % గుర్తే %25గా ఎన్కోడ్ అయింది. అదనపు పొరను తొలగించడానికి ఒకసారి డీకోడ్ చేయండి, మీ కోడ్లో విలువలను ఒకే చోట మాత్రమే ఎన్కోడ్ చేయండి.
- ఏ అక్షరాలకు ఎప్పుడూ పర్సెంట్-ఎన్కోడింగ్ అవసరం లేదు?
- RFC 3986లోని అన్రిజర్వ్డ్ సెట్: పెద్ద మరియు చిన్న అక్షరాల A నుండి Z వరకు, 0 నుండి 9 అంకెలు, మరియు హైఫన్, పీరియడ్, అండర్స్కోర్, టిల్డ్.
- ఎన్కోడ్ చేయకుండా URLలో ఇంగ్లీష్ కాని అక్షరాలు ఉండవచ్చా?
- బ్రౌజర్లు వాటిని చూపిస్తాయి, కానీ నెట్వర్క్లో పాత్ లేదా క్వెరీలోని ప్రతి non-ASCII అక్షరం పర్సెంట్-ఎన్కోడ్ చేసిన UTF-8గా వెళ్తుంది. డొమైన్ పేర్లు వేరే విధానమైన Punycode వాడతాయి, అది వాటిని xn-- లేబుళ్లుగా మారుస్తుంది.
- డీకోడ్ చేసేటప్పుడు సీక్వెన్స్ తప్పుగా ఉందని ఎందుకు చూపిస్తుంది?
- టెక్స్ట్లో రెండు హెక్సాడెసిమల్ అంకెలు లేని % ఉంది, ఉదాహరణకు అసలు "100%", లేదా బైట్లు చెల్లని UTF-8గా డీకోడ్ అవుతున్నాయి. డీకోడ్ చేసే ముందు ఒంటరి % గుర్తులను %25గా ఎన్కోడ్ చేయండి.