问题描述
QueueClient azQueue = new QueueClient(@"<connection string>","test-queue");
azQueue.SendMessage("test®test");
,它失败并显示消息:“ 6次尝试后重试失败。” 如果我从字符串中删除®字符,它将毫无问题地发送消息。 请帮助我正确处理特殊字符。
解决方法
我相信您使用的是更新的SDK Azure.Storage.Queues
,它不会像以前的Microsoft.Azure.Storage.Queue
或WindowsAzure.Storage
(已弃用)那样自动在Base64中对消息进行编码。因此,最好像下面这样编码您的消息。另请参阅:https://github.com/Azure/azure-sdk-for-net/issues/11358,还有一个功能请求https://github.com/Azure/azure-sdk-for-net/issues/10242。
QueueClient azQueue = new QueueClient(@"<connection string>","test-queue");
azQueue.SendMessage(Convert.ToBase64String(Encoding.UTF8.GetBytes("test®test")));