【问题标题】:Folder Name contains # symbol but thumbnails are not displaying文件夹名称包含 # 符号但未显示缩略图
【发布时间】:2013-03-17 11:19:07
【问题描述】:

您好,我在 Windows Phone 8 中开发了一个应用程序,它将图像从服务器下载到手机,并且每个文件夹都是 picturesthumbnails 正在显示,没有任何问题。但是如果有一个带有"#" 符号的文件夹,比如Fold#er,那么文件夹内的所有图像都会显示,但缩略图不显示,它是空的。

我已经调试了代码,没有问题,没有异常。即使在我测试过的服务器中,它也可以很好地处理缩略图和图片。

知道为什么# 符号会造成这个问题吗?

谢谢

【问题讨论】:

    标签: c# windows-phone-8 thumbnails


    【解决方案1】:

    井号 (#) 是 URL 锚点。听起来您需要对路径进行 URL 编码。例如。 Fold%23er

    【讨论】:

    • 那我该如何解决呢?我要把# 改成%23 吗?喜欢if (imgTinyThumbnail.FilePath.Contains("#")) { imgTinyThumbnail.FilePath.Replace(("#", "%23"); }
    【解决方案2】:

    经过大量研究,我找到了解决方案,感谢@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 找到的解决方案。

    谢谢

    【讨论】:

      猜你喜欢
      • 2017-04-03
      • 1970-01-01
      • 1970-01-01
      • 2011-12-18
      • 2015-12-25
      • 1970-01-01
      • 2019-07-06
      • 1970-01-01
      • 2019-04-14
      相关资源
      最近更新 更多