国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

javascript URL 編碼與解碼

Eminjannn / 3499人閱讀

摘要:對(duì)應(yīng)對(duì)應(yīng)這里的編碼你可以用自帶的編碼函數(shù),當(dāng)然你也可以按照規(guī)則和標(biāo)準(zhǔn)自行開(kāi)發(fā)編碼函數(shù)。實(shí)戰(zhàn)應(yīng)用舉例說(shuō)了這么多可能很多人就問(wèn)了,自帶的編碼與解碼函數(shù)在實(shí)際中是如何應(yīng)用的,為什么需要兩個(gè)不同的編碼與解碼函數(shù)。

編碼與解碼函數(shù) 編碼函數(shù)

encodeURI
encodeURIComponent

解碼函數(shù)

decodeURI
decodeURIComponent

編碼規(guī)則相同點(diǎn)

會(huì)替換所有的字符,但不包括以下字符
非轉(zhuǎn)義的字符:字母 數(shù)字 - _ . ! ~ * " ( )

編碼規(guī)則不同點(diǎn)

encodeURI 還會(huì)有一些不編碼的字符,如下
保留字符:; , / ? : @ & = + $
數(shù)字符號(hào):#

解碼規(guī)則

解碼只會(huì)解碼對(duì)應(yīng)規(guī)則編碼出來(lái)的字符串,若不會(huì)解碼出亂碼。
encodeURI ->(對(duì)應(yīng)) decodeURI
encodeURIComponent -> (對(duì)應(yīng)) decodeURIComponent
這里的編碼你可以用JavaScript自帶的編碼函數(shù),當(dāng)然你也可以按照規(guī)則和標(biāo)準(zhǔn)自行開(kāi)發(fā)編碼函數(shù)。

實(shí)戰(zhàn)應(yīng)用舉例
說(shuō)了這么多可能很多人就問(wèn)了,JavaScript自帶的編碼與解碼函數(shù)在實(shí)際中是如何應(yīng)用的,為什么需要兩個(gè)不同的編碼與解碼函數(shù)。
const url = "https://auto.3g.163.com/";

// 字符串編碼
const params = {
  title: "今天去干什么?& 今天去哪里浪?",
  desc: "去哪里都行 & 哪里都不去!!!"
};

function compURL(url, params) {
  let result = encodeURI(url) + "?";
  for (let key in params) {
    result +=
      encodeURIComponent(key) + "=" + encodeURIComponent(params[key]) + "&";
  } //這樣即使帶有一些符號(hào) ? & 等也可以方便的從url 中獲取參數(shù)
  return result.slice(0, -1);
}

const urlCompd = compURL(url, params);

console.log(urlCompd);

// 字符竄解碼獲取數(shù)據(jù)

function parseURL(url) {
  const result = {
    sourceUrl: "",
    params: {}
  };
  result.sourceUrl = decodeURI(url.split("?")[0]);
  const paramStr = url.split("?")[1];
  const paramArr = paramStr.split("&");
  paramArr.forEach(item => {
    const itemArr = item.split("=");
    const key = decodeURIComponent(itemArr[0]),
      value = decodeURIComponent(itemArr[1]);
    result.params[key] = value;
  });
  return result;
}

const paramsData = parseURL(urlCompd);
console.log(paramsData);

在線代碼

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/105556.html

相關(guān)文章

  • JS基礎(chǔ)篇--JS對(duì)url進(jìn)行編碼解碼(三種方式區(qū)別)

    摘要:它的具體規(guī)則是,除了字母數(shù)字標(biāo)點(diǎn)符號(hào)以外,對(duì)其他所有字符進(jìn)行編碼。對(duì)應(yīng)的解碼函數(shù)是。其次,不對(duì)編碼。與的區(qū)別是,它用于對(duì)的組成部分進(jìn)行個(gè)別編碼,而不用于對(duì)整個(gè)進(jìn)行編碼。因此,,這些在中不被編碼的符號(hào),在中統(tǒng)統(tǒng)會(huì)被編碼。 Javascript語(yǔ)言用于編碼的函數(shù),一共有三個(gè),最古老的一個(gè)就是escape()。雖然這個(gè)函數(shù)現(xiàn)在已經(jīng)不提倡使用了,但是由于歷史原因,很多地方還在使用它,所以有必要...

    xiaoxiaozi 評(píng)論0 收藏0
  • JS對(duì)url進(jìn)行編碼解碼(三種方式)

    摘要:對(duì)應(yīng)的解碼函數(shù)是。它用于對(duì)的組成部分進(jìn)行個(gè)別編碼,除了常見(jiàn)的符號(hào)以外,對(duì)其他一些在網(wǎng)址中有特殊含義的符號(hào),也不進(jìn)行編碼。元黑糖顆粒固飲編碼解碼元黑糖顆粒固飲 escape 和 unescape escape()不能直接用于URL編碼,它的真正作用是返回一個(gè)字符的Unicode編碼值 它的具體規(guī)則是,除了ASCII字母、數(shù)字、標(biāo)點(diǎn)符號(hào)@ * _ + - . /以外,對(duì)其他所有字符進(jìn)行編碼...

    lx1036 評(píng)論0 收藏0
  • JavaScript中三種GBK/GB2312編解碼方案對(duì)比

    摘要:筆者在編碼詳解與中編碼實(shí)踐一文中介紹了中編碼相關(guān)的基礎(chǔ)知識(shí),其中沒(méi)有介紹純粹的編解碼方案,筆者后來(lái)根據(jù)網(wǎng)上的代碼完善了下這個(gè)庫(kù),并且對(duì)中三種不同的編解碼方案進(jìn)行了比較。 Isomorphic Urlencode Here is English Version For README 筆者在URL編碼詳解與DOM中GBK編碼實(shí)踐一文中介紹了JavaScript中URL編碼相關(guān)的基礎(chǔ)知識(shí),其...

    BlackFlagBin 評(píng)論0 收藏0
  • 前端開(kāi)發(fā)中的字符編碼

    摘要:當(dāng)然,也可自己寫一個(gè)轉(zhuǎn)換函數(shù),按照一定規(guī)則便行為編碼的字節(jié),如下例中國(guó)結(jié)果中國(guó)結(jié)果結(jié)果通過(guò)簡(jiǎn)單的函數(shù),就可以完成編碼到編碼的轉(zhuǎn)換,進(jìn)而完成寬字節(jié)字符到編碼的轉(zhuǎn)換。 前端開(kāi)發(fā)過(guò)程中會(huì)接觸各種各樣的編碼,比較常見(jiàn)的主要是 UTF-8 和 HTML 實(shí)體編碼,但是 web 前端的世界卻不止這兩種編碼,而且編碼的選擇也會(huì)造成一定的問(wèn)題,如前后端開(kāi)發(fā)過(guò)程中不同編碼的兼容、多字節(jié)編碼可能會(huì)造成的 ...

    Rindia 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<