[英]String Encoding
我正在檢查iTunes庫的XML備份中是否存在文件。
如何更改此字符串
E:\\Entertainment\\Music\\Latin\\100% Azucar The Best of Celia Cruz & La Sonora Matancera/08 Mi Soncito.mp3
對此
E:/Entertainment/Music/Latin/100%25%20Azucar%20%20The%20Best%20of%20Celia%20Cruz%20&%20La%20Sonora%20Matancera/08%20Mi%20Soncito.mp3
變化:
看起來像兩件事:
1)用正斜杠代替反斜杠。
2)應用URI編碼。
首先是顯而易見的。 對於第二個,您有一些選擇,包括Uri.EscapeDataString
, Uri.EscapeUriString
, HttpUtility.UrlEncode
和HttpUtility.UrlPathEncode
。
編輯
3)正如Vilx所注意到的,似乎文件名部分存在HtmlEncoding。
也許最好的答案是使用Uri類對零件進行切片和切塊,並根據需要對其進行編碼。
我想我找到了他問題的關鍵部分。 它有點兒藏在那里,是第一句話和所有句子,所以沒人注意到它。 XD
我正在檢查iTunes庫的XML備份中是否存在文件。
在我看來,我們正在處理一些流氓的iTunes-XML編碼,這種編碼在整個過程中有些混亂。 我的建議是反方向-解碼iTunes字符串(首先通過HtmlDecode,然后通過UrlDecode),然后將其與您要查找的原始字符串進行比較。 這應該能夠應付iTunes的大多數錯誤編碼。
一個非常簡單的路線:
filepath.Replace("\\", "/").Replace("%", "%25").Replace(" ", "%20").Replace("&", "&")
%20表示空格字符。 我看到您想對該字符串進行更多操作,所以我可以問一下您更喜歡使用哪種工具? 正則表達式? 字符串替換?
您可以使用Uri.EscapeDataString()
靜態方法來完成此操作。 超級容易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.