this piece of code seems as other part that we discussed about encodings.
I think that we need to change:
```python
payload = payload.encode(charset)
```
for this:
```python
if isinstance(payload, unicode)
    payload = payload.encode(charset)
```

So we avoid an `UnicodeDecodeError` resulting of an implicit conversion if `payload` is an `str`.

Unless we are absolutely sure that `payload` is `unicode`.