佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > Web里URL空格的轉(zhuǎn)換方法

Web里URL空格的轉(zhuǎn)換方法

熱門標(biāo)簽:Mysql連接數(shù)設(shè)置 阿里云 科大訊飛語音識別系統(tǒng) Linux服務(wù)器 服務(wù)器配置 團(tuán)購網(wǎng)站 銀行業(yè)務(wù) 電子圍欄

看URL是HttpUtility.UrlEncode將空格轉(zhuǎn)換成了“+”號,原因找到就著手解決Bug。
引用:

復(fù)制代碼 代碼如下:

  fileName = HttpUtility.UrlEncode(fileName, Encoding.UTF8);
  fileName = fileName.Replace("+", "%20");

  通過Replace替換解決,雖然問題解決了,但這并不是一個很好的方法,如果文件夾或文件名中包含“+”號則會導(dǎo)致另外的Bug發(fā)生。
最佳解決方案:

  使用HttpUtility.UrlPathEncode,UrlPathEncode 方法執(zhí)行下列步驟:

    1.將 UrlPathEncode 方法的編碼邏輯只應(yīng)用于 URL 的路徑部分(不包括查詢字符串)。 該方法假定 URL 被編碼為 UTF-8 字符串。

    2.對非空格編碼,以便在所得的編碼字符串中使用前 128 個 ASCII 字符的子集。 Unicode 的所有字符值為 128 及更高,或者 32 和更小, URL 中輸入。

    3.輸入空格作為 %20。

  使用 UrlEncode 方法或 UrlPathEncode 方法,可以輸入 URL。 但是,方法返回不同的結(jié)果。 UrlEncode 方法將每個空格字符轉(zhuǎn)換為加號 (+) 字符。 UrlPathEncode 方法將每個空格字符轉(zhuǎn)換為字符串 %20,以十六進(jìn)制表示法表示的一個空格。 在對 URL 的路徑部分編碼時使用 UrlPathEncode 方法,以保證一致的已解碼 URL,與執(zhí)行解碼的平臺或瀏覽器無關(guān)。 當(dāng)您使用 UrlPathEncode 方法時,查詢字符串值不會輸入。 因此,可通過問號的任何值 (?) 在字符串,將不會輸入。 如果必須通過 URL,當(dāng)查詢字符串,則使用 UrlEncode 方法。

  看到項目中很多頁面都使用了Replace方式,查詢后全部替換為UrlPathEncode減少更多Bug的發(fā)生。

標(biāo)簽:萍鄉(xiāng) 大理 蚌埠 棗莊 衡水 衢州 廣元 江蘇

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Web里URL空格的轉(zhuǎn)換方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    南澳县| 郧西县| 三门县| 南溪县| 延边| 大宁县| 涞水县| 嘉善县| 太原市| 获嘉县| 玉树县| 舒城县| 施秉县| 锡林浩特市| 巴马| 醴陵市| 渭南市| 凌源市| 青阳县| 方正县| 财经| 台东市| 宿州市| 家居| 万全县| 扎鲁特旗| 泉州市| 宁海县| 武平县| 盐山县| 稻城县| 介休市| 河池市| 湟源县| 新乡县| 泽库县| 怀集县| 河间市| 阜城县| 乡宁县| 上杭县|