字符串编码

Raj*_*ore 1 c# 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

Ste*_*dit 7

看起来像两个单独的东西:

1)用正斜杠替换反斜杠.

2)应用URI编码.

第一个是显而易见的.对于第二个,你有一些选择,包括Uri.EscapeDataString,Uri.EscapeUriString,HttpUtility.UrlEncodeHttpUtility.UrlPathEncode.

编辑

3)正如Vilx注意到的那样,文件名部分似乎有HtmlEncoding.

也许最好的答案是使用Uri类来切片和切块,根据需要对它们进行编码.