将字符串编码为Azure Blob元数据的正确方法是什么?
使用Azure Storage Explorer时,它似乎使用接近C#UWP WebUtiliy.UrlEncode
的函数。但不幸的是,WebUtilty.UrlEncode用“+”符号替换空格(Storage Explorer将空格保持原样)
是否有其他内置编码方法,以便我可以在我的应用程序和存储资源管理器之间保持元数据的兼容性?
由于
答案 0 :(得分:2)
通常,除非任何名称/值对包含非ASCII字符,否则我们不需要对值进行编码。因此,建议您对包含非ASCII字符的名称和值使用URL编码或Base64编码。
您可以使用任何您想要的方式,因为您可以正确解码字符串。该工具不会影响您的编码和解码方式。无论存储资源管理器UI中的值如何显示,您从应用程序获取的值都是您编码的字符串。
如果您确实希望在Storage Explorer中使用相同的编码/解码方式,那么通过我的测试,您可以尝试使用Uri.EscapeUriString
方法。这会将空间编码为%20
,而Storage Explorer可以正确解码。
string escapetest= Uri.EscapeDataString(specialvalue);
blockBlob.Metadata["category"] = escapetest;