嗨,我在 Windows Phone 8 中开发了一个应用程序,它将图像从服务器下载到手机,并且每个文件夹都在pictures
显示thumbnails
,没有任何问题。但是如果有一个带有"#"
类似符号的文件夹Fold#er
,那么文件夹内的所有图像都会显示,但缩略图不显示,它是空的。
我已经调试了代码,没有问题,没有例外。即使在我测试过的服务器中,它也可以很好地处理缩略图和图片。
知道为什么#
符号会产生这个问题吗?
谢谢
嗨,我在 Windows Phone 8 中开发了一个应用程序,它将图像从服务器下载到手机,并且每个文件夹都在pictures
显示thumbnails
,没有任何问题。但是如果有一个带有"#"
类似符号的文件夹Fold#er
,那么文件夹内的所有图像都会显示,但缩略图不显示,它是空的。
我已经调试了代码,没有问题,没有例外。即使在我测试过的服务器中,它也可以很好地处理缩略图和图片。
知道为什么#
符号会产生这个问题吗?
谢谢
哈希 (#) 是 URL 锚点。听起来您需要对路径进行 URL 编码。例如Fold%23er
经过大量研究,我找到了解决方案,感谢@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 找到的解决方案。
谢谢