9 – Unable to delete a tempstore that contains an en dash or an em dash

I am trying to delete a shared temporary storage for a key containing an en dash or an em dash.

$keyword = '2020–2021';
$tempstore = Drupal::service('tempstore.shared')->get('my_module_name');
$tempstore->delete($keyword);

It throws this exception.

DrupalCoreDatabaseDatabaseExceptionWrapper: SQLSTATE(HY000): General error: 1267 Illegal mix of collations (ascii_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation ‘=’: DELETE FROM {key_value_expire} WHERE ("name" IN (:db_condition_placeholder_0)) AND ("collection" = :db_condition_placeholder_1); Array ( (:db_condition_placeholder_0) => 2020—2021 (:db_condition_placeholder_1) => tempstore.shared.my_module_name ) in DrupalCoreKeyValueStoreStorageBase->delete() (line 52 of core/lib/Drupal/Core/KeyValueStore/StorageBase.php).

As far as I can tell, it’s not an issue with the database, but rather with having the en dashes or em dashes in the storage key. I’ve tried escaping it with Html::escape() and utf8_encode(), but it didn’t resolve the issue.

EDIT:
I checked what my local database collation is and it returns UTF8.

mysql> SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
-> FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = ‘drupal9’;
+—————————-+————————+
| DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME |
+—————————-+————————+
| utf8 | utf8_general_ci |
+—————————-+————————+

EDIT2:

Running the following queries fixed the issue:

ALTER TABLE `key_value_expire` CHANGE `name` `name` VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'The key of the key/value pair.';

ALTER TABLE `key_value_expire` CHANGE `collection` `collection` VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'A named collection of key and value pairs.';