从字节数组转换为字符串时,它正在添加空格
问题描述:
我正在使用RabbitMq,我可以添加一个字符串到队列中。当我查看队列时,一切看起来不错,但是当我将该字符串从队列中取出时,它将在每个字符之间添加空格。我已经看过使用.trim()和不同类型的编码的所有内容。字符串总是出来的空格,这使得它不可能反序列化成json。从字节数组转换为字符串时,它正在添加空格
由于它正好坐在队列上,我只是添加获取数据并将其转换为简单字符串的部分。
using (var connection = connectionFactory.CreateConnection())
using (var channel = connection.CreateModel())
{
channel.BasicQos(0, 1, false);
var consumer = new EventingBasicConsumer(channel);
channel.BasicConsume(QUEUE_NAME, false, consumer);
consumer.Received += (model, ea) =>
{
var body = ea.Body;
var message = System.Text.Encoding.UTF8.GetString(body, 0, body.Length);
Console.WriteLine($" [x] Recieved {message}");
};
channel.BasicConsume(QUEUE_NAME, true, "brandon", false, false, null, consumer);
Console.ReadLine();
}
答
看起来像消息被编码时它被编码为unicode。我将编码更改为UTF8,并且消息传递完美:)
我们还在使用.net核心项目 –
传入消息是否可能是UTF-16而不是UTF-8? – Tim
听起来像字节可能存储为unicode。尝试将UTF8更改为Unicode。 – TwistedStem