### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

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

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

If we then create a path with a percent encoded object path, deleting it works correctly
 
```
$ curl -X PUT --data-binary 'test' -H "Content-Type: text/plain" 'http://localhost:4566/tustvold/a%252Fb.txt'

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

$ aws s3api delete-objects --no-sign-request --endpoint http://localhost:4566 --bucket tustvold --delete 'Objects=[{Key=a%2Fb.txt}]'
{
    "Deleted": [
        {
            "Key": "a%2Fb.txt"
        }
    ]
}
```

However, if the object key is a percent encoded emoji, we get very peculiar behaviour, where the DeleteObject appears to be trying to delete the percent decoded version of the object

```
$ aws --no-sign-request --endpoint-url=http://localhost:4566 s3 ls s3://tustvold
$ curl -X PUT --data-binary 'test' -H "Content-Type: text/plain" 'http://localhost:4566/tustvold/a/%25F0%259F%2598%2580.file'

$ aws --no-sign-request --endpoint-url=http://localhost:4566 s3 ls s3://tustvold --recursive
2023-10-21 21:36:07          4 a/%F0%9F%98%80.file

$ aws s3api delete-objects --no-sign-request --endpoint http://localhost:4566 --bucket tustvold --delete 'Objects=[{Key=a/%F0%9F%98%80.file}]'
{
    "Deleted": [
        {
            "Key": "a/😀.file"
        }
    ]
}
$ aws --no-sign-request --endpoint-url=http://localhost:4566 s3 ls s3://tustvold --recursive
2023-10-21 21:36:07          4 a/%F0%9F%98%80.file
```

### Expected Behavior

In version 2.0 this worked correctly

```
$ 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/%25F0%259F%2598%2580.file'

$ aws s3api delete-objects --no-sign-request --endpoint http://localhost:4566 --bucket tustvold --delete 'Objects=[{Key=a/%F0%9F%98%80.file}]'
{
    "Deleted": [
        {
            "Key": "a/%F0%9F%98%80.file"
        }
    ]
}

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

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

See above

### Environment

```markdown
- OS:
- LocalStack:
```


### 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
from boto3.s3.transfer import KB, TransferConfig
from botocore import UNSIGNED
from botocore.auth import SigV4Auth
from botocore.client import Config
from botocore.exceptions import ClientError
from zoneinfo import ZoneInfo
from localstack import config, constants
from localstack.aws.api.lambda_ import Runtime