I'm receiving nasty AuthenticationFailed error, when try to list blobs with listBlobs() method, when prefix option is set in cyrilic letters:
"message":"Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.\nRequestId:a63a444c-88f9-4035-8d22-bf516a23606b\nTime:2012-07-23T15:16:50.5947150Z",
"authenticationerrordetail":"The MAC signature found in the HTTP request 'UGwrQC3qbSpEKAQ4NH27pxcaKXlW0UMVvsyWqD+VD/w=' is not the same as any computed signature. Server used following string to sign: 'GET\n\n\n\n\n\n\n\n\n\n\n\nx-ms-date:Mon, 23 Jul 2012 15:16:51 GMT\nx-ms-version:2011-08-18\n/testacc/064f356c-1141-41f2-87fc-b656b7d9aabc\ncomp:list\ndelimiter:/\ninclude:metadata\nprefix:newdir/Ð¿Ñ€Ð°Ð±Ð°Ð±Ð°ÐºÐµÑ€/\nrestype:container'."}
Uploading files with createBlobFrom works well for cyrillic though.
Have you tried encodeURIComponent on your prefix ?
Well, it seems like it's fundamental problem with Azure Blob Storage, because any information sent via HTTP headers(prefix, metadata and etc) cannot be set in UTF8 encoding, just according to RFC. Everything is converted to ASCII.
The only workaround I've found is to convert strings to series of unicode integer codes before sending to azure, and convert back to characters when receiving from azure, at software layer.
Closing as part of xplat backlog scrub.