Unity Url 特殊符号导致的bug

博客讲述了在使用UnityWebRequest时遇到URL包含特殊符号如'+'导致404错误的问题。通过将特殊符号转换为对应的URL编码,如将'+'替换为'%2B',可以成功解决这个问题。此外,对于WebGL平台,需要在配置中开启双重转义以确保请求的正确性。提供的代码示例展示了如何进行符号替换,并给出了IIS服务器中启用双重转义的XML配置片段。
摘要由CSDN通过智能技术生成

🚑 bug

💡 在使用Url过程中遇到了特殊的路径比如:Assets/StreamingAssets/diji倾斜摄影测试数据/Data/Tile_+000_+003/Tile.osgb,这个路径中包含了特殊符合+,它表示的是空格,这时如果直接使用这个Url会导致404,我们需要把+替换成对应的编码%2B即可完美解决*★,°*:.☆( ̄▽ ̄)/$:*.°★*

🏳‍🌈修复bug

💡 以下是可以在文件夹及文件命名是允许使用的特殊符号,使用UnityWebRequest下载时如果Url只是一个路径就需要替换成对应的编码哦!🍭

特殊符号Url功能替换编码
+空格%2B
空格-+或%20
%指定特殊字符%25
#书签%23
&参数之间的分隔符%26
=指定参数的值%3D
/// <summary>
/// 把特殊符号替换成编码防止下载失败
///(url只是一个文件路径)
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public static string ReplaceSpecificSymbol(this string url)
{
    string zy = url.Replace("%", "%25").Replace("+", "%2B").Replace(" ", "%20").Replace("#", "%23").Replace("&", "%26").Replace("=", "%3D");
    //编辑器环境不需要替换
    url = (Application.platform == RuntimePlatform.WindowsEditor) ? url : zy;
    return url;
}

🥗WebGL平台开启双重转义

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<system.webServer>
    ...
    <security>
      <requestFiltering allowDoubleEscaping="true"></requestFiltering>
    </security>
    
	</system.webServer>

</configuration>
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牙膏上的小苏打2333

哟,哟,切克闹,煎饼果子来一套

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值