您好我已经开发了Windows Phone 8中的应用程序,它将图像从服务器下载到手机,并且每个文件夹是pictures
和thumbnails
正在显示,没有任何问题。但是如果有一个文件夹"#"
象Fold#er
这样的符号,那么在文件夹内所有的图像都显示,但缩略图不显示,它是空的。文件夹名称包含#符号但缩略图不显示
我调试了代码,没有问题,没有例外。即使在我测试过的服务器上,它也能很好地处理缩略图和图片。
任何想法为什么是#
符号创建此问题?
谢谢
您好我已经开发了Windows Phone 8中的应用程序,它将图像从服务器下载到手机,并且每个文件夹是pictures
和thumbnails
正在显示,没有任何问题。但是如果有一个文件夹"#"
象Fold#er
这样的符号,那么在文件夹内所有的图像都显示,但缩略图不显示,它是空的。文件夹名称包含#符号但缩略图不显示
我调试了代码,没有问题,没有例外。即使在我测试过的服务器上,它也能很好地处理缩略图和图片。
任何想法为什么是#
符号创建此问题?
谢谢
经过大量研究,我找到了解决方案,感谢@Blazes的建议,但这是不同的问题。在我的应用程序中,每当它发现像#,^,<,>等任何特殊字符时,它只是截断字符串,直到该字符串,最糟糕的部分是它没有抛出任何错误/异常。现在,我已经使用
string escapeStr = Uri.EscapeDataString(filepath);
这条线是不足以解决问题,但有时整个字符串必须逃脱编码
像假设你有一个字符串,它就像
string request = "Username" + uname + "Password" +Pwd + "Filepath" + filepath;
然后在这种情况下
string unamestr = Uri.EscapeDataString(uname);
string Pwdstr = Uri.EscapeDataString(Pwd);
不会帮助,因为你正在处理unicode字符。因此,在这种情况下,整个字符串需要被编码这样
string request = Uri.EscapeDataString("Username" + uname + "Password" +Pwd + "Filepath" + filepath);
这是我通过反复试验/错误的方法和从SO找到了解决办法。
谢谢
散列(#)是一个URL锚点。这听起来像你需要URL路径编码。例如。 Fold%23er
那我该如何解决呢?我应该将#改成%23吗? (如“(imgTinyThumbnail.FilePath.Contains(”#“)) { imgTinyThumbnail.FilePath.Replace((”#“,”%23“); }' – Debhere 2013-03-27 11:41:18
请参阅:http://stackoverflow.com/问题/ 575440/URL编码-使用-C-尖锐 – Blazes 2013-03-27 11:42:17