### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

```
$ docker run -d -p 4566:4566 -e PROVIDER_OVERRIDE_S3=v3 localstack/localstack:2.3

$ aws --no-sign-request --endpoint-url=http://localhost:4566 s3 mb s3://tustvold

$ curl -X PUT --data-binary 'test' -H "Content-Type: text/plain" 'http://localhost:4566/tustvold/a%252Fb.txt'

$ curl 'http://localhost:4566/tustvold'
<?xml version='1.0' encoding='utf-8'?>
<ListBucketResult><IsTruncated>false</IsTruncated><Marker /><Name>tustvold</Name><Prefix /><MaxKeys>1000</MaxKeys><EncodingType>url</EncodingType><Contents><Key>a%252Fb.txt</Key><ETag>"d41d8cd98f00b204e9800998ecf8427e"</ETag><Owner><DisplayName>webfile</DisplayName><ID>75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a</ID></Owner><Size>0</Size><LastModified>2023-10-21T18:45:37.298607Z</LastModified><StorageClass>STANDARD</StorageClass></Contents></ListBucketResult>
```

Using `PROVIDER_OVERRIDE_S3=v3` does not appear to change this behaviour, nor does it differ between ListObjects and ListObjectsV2

### Expected Behavior

```
$ docker run -d -p 4566:4566 localstack/localstack:2.0

$ aws --no-sign-request --endpoint-url=http://localhost:4566 s3 mb s3://tustvold

$ curl -X PUT --data-binary 'test' -H "Content-Type: text/plain" 'http://localhost:4566/tustvold/a%252Fb.txt'

$ curl http://localhost:4566/tustvold/a%252Fb.txt
test

$ aws --no-sign-request --endpoint-url=http://localhost:4566 s3 ls s3://tustvold
2023-10-21 19:43:04          4 a%2Fb.txt

$ curl 'http://localhost:4566/tustvold'
<?xml version='1.0' encoding='utf-8'?>
<ListBucketResult><IsTruncated>false</IsTruncated><Marker /><Contents><Key>a%2Fb.txt</Key><LastModified>2023-10-21T18:43:04Z</LastModified><ETag>"098f6bcd4621d373cade4e832627b4f6"</ETag><Size>4</Size><StorageClass>STANDARD</StorageClass><Owner><DisplayName>webfile</DisplayName><ID>75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a</ID></Owner></Contents><Name>tustvold</Name><MaxKeys>1000</MaxKeys></ListBucketResult>
```

Unless encoding-type is specified in the request, it shouldn't return encoded paths for compatibility with the behaviour of S3 itself. 

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

See above

### Environment

```markdown
Linux
```


### Anything else?

_No response_
import base64
import contextlib
import datetime
import gzip
import hashlib
import io
import json
import logging
import os
import shutil
import tempfile
import time
from io import BytesIO
from operator import itemgetter
from typing import TYPE_CHECKING
from urllib.parse import SplitResult, parse_qs, quote, urlencode, urlparse, urlunsplit
import boto3 as boto3
import pytest
import 
import xmltodict