1
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();
}
또한 .net 핵심 프로젝트를 사용합니다 –
들어오는 메시지가 UTF-8 대신 UTF-16 일 수 있습니까? – Tim
바이트와 같은 사운드가 유니 코드로 저장 될 수 있습니다. UTF8을 유니 코드로 변경해보십시오. – TwistedStem