台灣最大程式設計社群網站
線上人數
4605
 
會員總數:246136
討論主題:189720
歡迎您免費加入會員
討論區列表 >> VB.NET >> 中文字轉換
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
中文字轉換
價值 : 200 QP  點閱數:437 回應數:7
樓主

P陳
初級顧問
14921 186
8956 2228
發送站內信


請問一下各位:
在網頁上我打了 【海馬先生】 四個字
然後在網址列上被轉換成 %E6%B5%B7%E9%A6%AC%E5%85%88%E7%94%9F
好像一個中文字會被轉成 3個Byte

請問一下各位,我可以用那個函數來作轉換 (互換)


搜尋相關Tags的文章: [ 網頁中文字轉換 ] ,
本篇文章發表於2019-06-19 14:07
1樓
最有價值解答

缺氧的羊:窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應
UrlEncode

UrlDecode

在asp.net可以直接寫 Server.UrlEncode
========
另一個則是 HttpUtility.UrlEncode

https://docs.microsoft.com/zh-tw/dotnet/api/system.web.httputility.urlencode?view=netframework-4.8
本篇文章回覆於2019-06-19 17:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
不錯的參考

小魚
檢舉此回應
是的,
很多API都是用 urlencode 跟 urldecode 在傳資料.
本篇文章回覆於2019-06-19 20:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

P陳
檢舉此回應
感謝 缺氧的羊、小魚 的回應:

Sorry 沒有交待清楚
這是在 VB.NET 中使用 HttpResponseMessage 來傳送資料的

1.在這個網頁中 http://ipac.nlpi.edu.tw/cgi-bin/spydus.exe/MSGTRN/OPAC/HOME 查詢【海馬先生】
2.網址列就會變成:
chrome 是

看到的是(有看到 海馬先生)
http://ipac.nlpi.edu.tw/cgi-bin/spydus.exe/ENQ/OPAC/BIBENQ?ENTRY=海馬先生&ENTRY_NAME=BS&ENTRY_TYPE=A&SEARCH_FORM=%2Fcgi-bin%2Fspydus.exe%2FMSGTRN%2FOPAC%2FBSEARCH%3FHOMEPRMS%3DBSEARCHPARAMS&ISGLB=0

則上後則是
http://ipac.nlpi.edu.tw/cgi-bin/spydus.exe/ENQ/OPAC/BIBENQ?ENTRY=%E6%B5%B7%E9%A6%AC%E5%85%88%E7%94%9F&ENTRY_NAME=BS&ENTRY_TYPE=A&SEARCH_FORM=%2Fcgi-bin%2Fspydus.exe%2FMSGTRN%2FOPAC%2FBSEARCH%3FHOMEPRMS%3DBSEARCHPARAMS&ISGLB=0




Edge 則是看到的是
http://ipac.nlpi.edu.tw/cgi-bin/spydus.exe/ENQ/OPAC/BIBENQ?ENTRY=%E6%B5%B7%E9%A6%AC%E5%85%88%E7%94%9F&ENTRY_NAME=BS&ENTRY_TYPE=A&SEARCH_FORM=%2Fcgi-bin%2Fspydus.exe%2FMSGTRN%2FOPAC%2FBSEARCH%3FHOMEPRMS%3DBSEARCHPARAMS&ISGLB=0


3.我再試看看 相關的差異在那。不過有 urlencode 跟 urldecode 的方向可以研究了
本篇文章回覆於2019-06-20 07:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

小魚
檢舉此回應


經過 HttpUtility.UrlEncode(str) 會變成
http%3a%2f%2fipac.nlpi.edu.tw%2fcgi-bin%2fspydus.exe%2fENQ%2fOPAC%2fBIBENQ%3fENTRY%3d%e6%b5%b7%e9%a6%ac%e5%85%88%e7%94%9f%26ENTRY_NAME%3dBS%26ENTRY_TYPE%3dA%26SEARCH_FORM%3d%252Fcgi-bin%252Fspydus.exe%252FMSGTRN%252FOPAC%252FBSEARCH%253FHOMEPRMS%253DBSEARCHPARAMS%26ISGLB%3d0

同個字串經過 HttpUtility.UrlDecode(str) 會變成
http://ipac.nlpi.edu.tw/cgi-bin/spydus.exe/ENQ/OPAC/BIBENQ?ENTRY=海馬先生&ENTRY_NAME=BS&ENTRY_TYPE=A&SEARCH_FORM=/cgi-bin/spydus.exe/MSGTRN/OPAC/BSEARCH?HOMEPRMS=BSEARCHPARAMS&ISGLB=0

如果希望看到第二串網址的部分,
就是只把 海馬先生 下去做UrlEncode,
其他的部分保留原樣.
本篇文章回覆於2019-06-20 15:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
如果是針對這個網址的話,
&SEARCH_FORM 之後的參數都是多餘的, 可以拿掉

http://ipac.nlpi.edu.tw/cgi-bin/spydus.exe/ENQ/OPAC/BIBENQ?ENTRY=%E6%B5%B7%E9%A6%AC%E5%85%88%E7%94%9F&ENTRY_NAME=BS&ENTRY_TYPE=A

也就是說, 要抓網址資料的話...
重點是

http://ipac.nlpi.edu.tw/cgi-bin/spydus.exe/ENQ/OPAC/BIBENQ?ENTRY=%E6%B5%B7%E9%A6%AC%E5%85%88%E7%94%9F&ENTRY_NAME=BS&ENTRY_TYPE=A

%E6%B5%B7%E9%A6%AC%E5%85%88%E7%94%9F 就是 urlEncode("海馬先生") 的結果
本篇文章回覆於2019-06-20 19:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
Chrome的網址列, 有針對網址資料做[顯示上]的處理(並且在你複製網址內容時, 會自動變化)


如果你直接複製整段網址, 複製後再貼到記事本
那個[海馬先生]就會是urlEncode之後的值...
%E6%B5%B7%E9%A6%AC%E5%85%88%E7%94%9F



如果你直接用滑鼠選取[海馬先生], 複製後再貼到記事本
那個[海馬先生]就會是[海馬先生]
本篇文章回覆於2019-06-20 19:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

P陳
檢舉此回應
謝謝二位的指導試出來了
本篇文章回覆於2019-06-20 20:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.