### Is there an existing issue for this?

- [X] I have searched the existing issues and read the documentation

### Question

I'm trying to implement locally DLQ for SNS with SQS, the problem is, on localstack SQS DLQ message coming from SNS have different format than what you would expect in AWS

When I tested locally I received the message in the following format:

`"{\"Action\": [\"Publish\"], \"Message\": [\"(The original SNS message body here)\"], \"TopicArn\": [\"the topic arn in localstack\"], \"Version\": [\"2010-03-31\"]}"`

I'm using local stack 0.14.0 with docker-compose

my docker-compose file looks like this:


```
 aws:
    image: localstack/localstack:0.14.0
    restart: always
    volumes:
      - ./docker-mounts/localstack:/docker-entrypoint-initaws.d
    environment:
      - SERVICES=sqs,s3,ses,sns
      - DEFAULT_REGION=eu-west-1
      - HOSTNAME_EXTERNAL=aws.localtest.local
      - AWS_ACCESS_KEY_ID=foo
      - AWS_SECRET_ACCESS_KEY=bar
      - AWS_DEFAULT_REGION=eu-west-1
```

### Anything else?

_No response_
sns_backend = SNSBackend.get()
    if topic_arn not in sns_backend.sns_tags:
        sns_backend.sns_tags[topic_arn] = []
    return sns_backend.sns_tags[topic_arn]
def get_message_attributes(req_data):
    extracted_msg_attrs = parse_urlencoded_data(req_data, "MessageAttributes.entry")
    return prepare_message_attributes(extracted_msg_attrs)
def is_raw_message_delivery(susbcriber):
    return susbcriber.get("RawMessageDelivery") in ("true", True, "True")
def create_sqs_message_attributes(subscriber, attributes):
    message_attributes = {}
    for key, value in attributes.items():
        
        if value.get("Type") or value.get("DataType"):
            tpe = value.get("Type") or value.get("DataType")
            attribute = {"DataType": tpe}
            if tpe == "Binary":
                val = value.get("BinaryValue") or value.get("Value")
                attribute["BinaryValue"] = base64.decodebytes(to_bytes(val))
                
                
                if not attribute["BinaryValue"]:
                    attribute["BinaryValue"] = val
            else:
                val = value.get("StringValue") or value.get("Value", "")
                attribute["StringValue"] = str(val)
            message_attributes[key] = attribute
    return message_attributes
def prepare_message_attributes(message_attributes):