zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Unity Url 特殊符号导致的bug

BUG Unity url 导致 特殊符号
2023-09-27 14:27:14 时间

🚑 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>