### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

Sending a message with body:
`"&quot;&quot;"`
is received on the consumer side with body:
`""""`

### Expected Behavior

Sending a message with body:
"&quot;&quot;"
is received on the consumer side with body:
"&quot;&quot;"

### How are you starting LocalStack?

Custom (please describe below)

### Steps To Reproduce

#### How are you starting localstack (e.g., `bin/localstack` command, arguments, or `docker-compose.yml`)

Running localstack in docker desktop on Mac using helm chart

https://localstack.github.io/helm-charts
version 0.3.7
Image version: 0.14.3

#### Client commands (e.g., AWS SDK code snippet, or sequence of "awslocal" commands)



### Environment

```markdown
- OS: macOS Monterey
- LocalStack: 0.14.3
```


### Anything else?

_No response_
is case (setting a body could also manipulate the headers)
        # If the response is a redirection, the body should be empty as well
        if operation_model.http.get("method") != "HEAD" and not 300 <= response.status_code < 400:
            self._serialize_payload(
                payload_params, response, shape, shape_members, operation_model, mime_type
            )
        self._serialize_content_type(response, shape, shape_members, mime_type)
        self._prepare_additional_traits_in_rresponse, operation_model)
    def _serialize_error(
        self,
        error: ServiceException,
        response: HttpResponse,
        shape: StructureShape,
        operation_model: OperationModel,
        mime_type: str,
    ) -> None:
        attr = (
            {"xmlns": operation_model.metadata.get("xmlNamespace")}
            if "xmlNamespace" in operation_model.metadata
            else {}
        )
        root = ETree.Element("Error", attr)
        self._add_error_tags(error, pe)
        request_id = ETree.SubElement(root, "RequestId")
        request_id.text = gen_amzn_requestid_long()
        self._add_additional_error_tags(error, root, shape, mime_type)
        response.set_r_payload(o_string(pe)))
    def _serialize_body_params(
        self,
        params: dict,
        shape: Shape,
        operation_model: OperationModel,
        mime_type: str,
    ) -> Optional[str]:
        root = self._serialize_body_params_to_xml(params, shape, operation_model, mime_type)
        # S3 does not follow the specs on the root tag name for 41 of 44 operations
        root.tag = self._RESPONSE_ROOT_TAGS.get(root.tag, root.tag)
        self._prepare_additional_traits_in_xml(root)
        return o_string(pe)
    def _prepare_additional_traits_in_r
        self, response: HttpResponse, operation_model: OperationModel
    ):
        """Adds the request ID to the headers (in contrast to the body - as in the Query protocol)."""
        response = super()._prepare_additional_t