天蓝色存储队列消息中的特殊字符

Special character in azure storage queue message

我有这个简单的代码:

  QueueClient azQueue = new QueueClient(@"<connection string>", "test-queue");                
  azQueue.SendMessage("test®test");

它失败并显示消息:“6 次尝试后重试失败。” 如果我从字符串中删除 ® 字符,它会毫无问题地发送消息。 请帮我正确处理特殊字符。

我相信您使用的是较新的 SDK Azure.Storage.Queues,它不会像以前的 Microsoft.Azure.Storage.QueueWindowsAzure.Storage(已弃用)那样自动使用 Base64 对消息进行编码。因此,最好像下面这样对您的消息进行编码。另请参阅:https://github.com/Azure/azure-sdk-for-net/issues/11358 and there is also a feature request 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")));