簡體   English   中英

字符串編碼

[英]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. 空間變為%20
  2. 反斜杠變為正斜杠
  3. %(百分號)變為%25

看起來像兩件事:

1)用正斜杠代替反斜杠。

2)應用URI編碼。

首先是顯而易見的。 對於第二個,您有一些選擇,包括Uri.EscapeDataStringUri.EscapeUriStringHttpUtility.UrlEncodeHttpUtility.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM