- 1 1. Einführung
- 2 2. Was ist ein MySQL‑Zeichensatz? Grundlagen verstehen
- 3 3. Wie man den aktuellen Zeichensatz prüft
- 4 4. Wie man den MySQL‑Zeichensatz ändert
- 5 5. Fehlersuche nach dem Ändern des Zeichensatzes
- 6 6. How Character Set Changes Affect Performance
- 7 7. Recommended Settings (Best Practices)
- 8 8. FAQ
- 8.1 Was ist der Unterschied zwischen utf8 und utf8mb4?
- 8.2 Führt das Ändern des MySQL-Zeichensatzes zu Datenverlust?
- 8.3 Wie behebe ich Mojibake, wenn es auftritt?
- 8.4 Welche Risiken gibt es beim Konvertieren von latin1 zu utf8mb4?
- 8.5 Beeinflusst das Umstellen auf utf8mb4 die Leistung?
- 8.6 Welche sollte ich verwenden: utf8mb4_general_ci oder utf8mb4_unicode_ci?
- 8.7 Werden Abfragen nach dem Umstellen auf utf8mb4 langsamer?
- 8.8 Zusammenfassung
- 8.9 Abschließende Hinweise
1. Einführung
Warum Sie das MySQL‑Zeichensatz ändern müssen
Ein Datenbank‑Zeichensatz ist eine wichtige Einstellung, die bestimmt, wie Textdaten kodiert und für die Speicherung verarbeitet werden. In MySQL ist der Standard‑Zeichensatz häufig latin1, was bei der Arbeit mit Japanisch oder anderen Sonderzeichen Probleme verursachen kann. Besonders bei Datenmigrationen oder Systemstandardisierungen wird das Umschalten auf einen geeigneten Zeichensatz unverzichtbar.
Häufige Probleme und ihre Ursachen
Typische Probleme im Zusammenhang mit MySQL‑Zeichensätzen umfassen die folgenden.
- Mojibake (verfälschte Zeichen)
utf8undlatin1werden in derselben Umgebung gemischt- Die Client‑ und Server‑Zeichensatz‑Einstellungen stimmen nicht überein
- Probleme bei der Suche
- Aufgrund von Kollations‑Unterschieden werden die erwarteten Suchergebnisse nicht zurückgeliefert
- Die Sortierreihenfolge weicht von Ihren Erwartungen ab
- Probleme bei der Datenmigration
- Emoji und Sonderzeichen können nicht gespeichert werden, weil
utf8mb4nicht verwendet wird - Die Zeichensatz‑Konvertierung wird beim Export/Import nicht korrekt behandelt
Ziele und Aufbau des Artikels
Dieser Artikel liefert eine umfassende Erklärung zu MySQL‑Zeichensatz‑Änderungen – von grundlegenden Konzepten über wie man Einstellungen ändert bis hin zu Fehlerbehebung.
Gliederung
- Grundwissen zu MySQL‑Zeichensätzen
- Wie man den aktuellen Zeichensatz prüft
- Wie man den MySQL‑Zeichensatz ändert
- Fehlerbehebung nach der Änderung
- Wie Zeichensatz‑Änderungen die Performance beeinflussen
- Empfohlene Einstellungen (Best Practices)
- FAQ (häufig gestellte Fragen)
Durch das Lesen dieses Leitfadens vertiefen Sie Ihr Verständnis für MySQL‑Zeichensätze und können die richtigen Einstellungen wählen und gängige Probleme vermeiden.
2. Was ist ein MySQL‑Zeichensatz? Grundlagen verstehen
Was ist ein Zeichensatz?
Ein Zeichensatz (Character Set) ist ein Regelwerk, das zur Speicherung und Verarbeitung von Zeichen als digitale Daten verwendet wird. Beispiel: Beim Speichern des japanischen Zeichens „あ“ repräsentiert UTF‑8 es als Byte‑Sequenz E3 81 82, während Shift_JIS 82 A0 nutzt.
In MySQL können Sie unterschiedliche Zeichensätze auf Datenbank‑ oder Tabellenebene festlegen. Durch die Wahl eines passenden Zeichensatzes können Sie Mojibake verhindern und die Internationalisierung reibungsloser gestalten.
Häufige Zeichensätze
| Character Set | Characteristics | Use Case |
|---|---|---|
utf8 | UTF-8 up to 3 bytes | Does not support some special characters (such as emoji) |
utf8mb4 | UTF-8 up to 4 bytes | Supports emoji and special characters (recommended) |
latin1 | ASCII-compatible | Used in older systems |
Was ist Kollation?
Kollation ist das Regelwerk, das zum Vergleichen und Sortieren von Daten innerhalb eines Zeichensatzes verwendet wird. Sie definiert beispielsweise, ob „A“ und „a“ als dasselbe Zeichen behandelt werden und wie die Reihenfolge bestimmt wird.
Häufig genutzte Kollationen
| Collation | Description |
|---|---|
utf8_general_ci | Case-insensitive, suitable for general use |
utf8_unicode_ci | Unicode-based collation (recommended) |
utf8mb4_bin | Binary comparison (use when exact matches are required) |
Unterschiede zwischen utf8 und utf8mb4
MySQLs utf8 kann tatsächlich nur bis zu 3 Byte pro Zeichen speichern, sodass bestimmte Sonderzeichen (wie Emoji oder einige erweiterte CJK‑Zeichen) nicht verarbeitet werden können. Im Gegensatz dazu unterstützt utf8mb4 bis zu 4 Byte pro Zeichen, weshalb moderne Anwendungen empfohlen wird, utf8mb4 zu verwenden.
| Character Set | Max Bytes | Emoji Support | Recommendation |
|---|---|---|---|
utf8 | 3 bytes | ❌ Not supported | ❌ Not recommended |
utf8mb4 | 4 bytes | ✅ Supported | ✅ Recommended |
Warum Sie von utf8 zu utf8mb4 wechseln sollten
- Zukunftssicherheit: Moderne Systeme standardisieren zunehmend auf
utf8mb4. - Speichern von Sonderzeichen und Emoji: Mit
utf8mb4können Sie Daten aus SNS‑Posts und Messaging‑Apps sicher handhaben. - Internationalisierung: Für mehrsprachige Systeme reduziert es das Risiko von Mojibake.
Zusammenfassung
- Zeichensatz bestimmt, wie Daten gespeichert und verarbeitet werden.
- Kollation bestimmt, wie Zeichen verglichen werden.
- MySQLs
utf8ist auf 3 Byte begrenzt, daher wirdutf8mb4empfohlen. utf8mb4_unicode_ciist eine häufig empfohlene Kollation für den allgemeinen Gebrauch.
3. Wie man den aktuellen Zeichensatz prüft
Bevor Sie den MySQL‑Zeichensatz ändern, ist es wichtig, die aktuellen Einstellungen zu überprüfen.
Da Zeichensätze auf mehreren Ebenen (Datenbank, Tabelle, Spalte) festgelegt werden können, sollten Sie genau verstehen, wo Änderungen nötig sind.
Wie man den aktuellen Zeichensatz prüft
Prüfen des MySQL‑Server‑weiten Zeichensatzes
First, check the default character set and collation settings for the entire MySQL server.
SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';
Beispielausgabe:
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
+--------------------------+----------------------------+
Zeichensatz pro Datenbank prüfen
Um den Zeichensatz einer bestimmten Datenbank zu prüfen, verwenden Sie die folgende Abfrage.
SELECT SCHEMA_NAME, DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
FROM information_schema.SCHEMATA
WHERE SCHEMA_NAME = 'database_name';
Beispielausgabe
+----------------+----------------------+----------------------+
| SCHEMA_NAME | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME |
+----------------+----------------------+----------------------+
| my_database | utf8mb4 | utf8mb4_unicode_ci |
+----------------+----------------------+----------------------+
Zeichensatz einer Tabelle prüfen
So prüfen Sie den Zeichensatz einer bestimmten Tabelle.
SHOW CREATE TABLE table_name;
Beispielausgabe
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;
Kontrollpunkte
DEFAULT CHARSET=latin1→ Nichtutf8mb4, daher ist eine Änderung erforderlichCOLLATE=latin1_swedish_ci→ Das Umstellen aufutf8mb4_unicode_ciist in der Regel geeigneter
Zeichensatz einer Spalte prüfen
Um den Zeichensatz auf Spaltenebene zu untersuchen, führen Sie das folgende SQL aus.
SELECT COLUMN_NAME, CHARACTER_SET_NAME, COLLATION_NAME
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'database_name'
AND TABLE_NAME = 'table_name';
Beispielausgabe
+-------------+--------------------+----------------------+
| COLUMN_NAME | CHARACTER_SET_NAME | COLLATION_NAME |
+-------------+--------------------+----------------------+
| name | latin1 | latin1_swedish_ci |
| email | utf8mb4 | utf8mb4_unicode_ci |
+-------------+--------------------+----------------------+
In diesem Beispiel verwendet die Spalte name latin1; es wird empfohlen, sie zu utf8mb4 zu ändern.
Zusammenfassung
- MySQL‑Zeichensätze werden auf mehreren Ebenen konfiguriert (Server, Datenbank, Tabelle, Spalte).
- Durch das Prüfen des Zeichensatzes auf jeder Ebene können Sie die richtigen Änderungen vornehmen.
- Verwenden Sie Befehle wie
SHOW VARIABLESundSHOW CREATE TABLE, um die aktuelle Konfiguration vollständig zu verstehen.

4. Wie man den MySQL‑Zeichensatz ändert
Durch das korrekte Anpassen des MySQL‑Zeichensatzes können Sie Mojibake verhindern und mehrsprachige Daten reibungsloser unterstützen.
In diesem Abschnitt erklären wir, wie Sie die Einstellungen auf jeder Ebene aktualisieren: serverweit, Datenbank, Tabelle und Spalte.
Serverweiten Standard‑Zeichensatz ändern
Um den serverweiten Standard‑Zeichensatz zu ändern, müssen Sie die MySQL‑Konfigurationsdatei (my.cnf oder my.ini) bearbeiten.
Schritte
- Öffnen Sie die Konfigurationsdatei
- Unter Linux:
bash sudo nano /etc/mysql/my.cnf Unter Windows: wp:list /wp:list
- Öffnen Sie
C:\ProgramData\MySQL\MySQL Server X.X\my.ini
- Öffnen Sie
- Zeichensatz‑Einstellungen hinzufügen oder ändern Fügen Sie die folgenden Zeilen im Abschnitt
mysqldhinzu oder aktualisieren Sie sie.[mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci
- MySQL neu starten
sudo systemctl restart mysql
Unter Windows:
net stop MySQL && net start MySQL
- Änderung überprüfen
SHOW VARIABLES LIKE 'character_set_server';
Zeichensatz auf Datenbankebene ändern
ALTER DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Änderung überprüfen
SELECT SCHEMA_NAME, DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
FROM information_schema.SCHEMATA
WHERE SCHEMA_NAME = 'mydatabase';
Zeichensatz auf Tabellenebene ändern
ALTER TABLE users CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Änderung überprüfen
SHOW CREATE TABLE users;
Zeichensatz auf Spaltenebene ändern
ALTER TABLE users MODIFY COLUMN name VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Änderung überprüfen
SELECT COLUMN_NAME, CHARACTER_SET_NAME, COLLATION_NAME
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'mydatabase'
AND TABLE_NAME = 'users';
Überprüfung nach der Änderung und die Bedeutung von Backups
Um die Datenintegrität nach dem Ändern des Zeichensatzes zu bewahren, folgen Sie diesen Schritten.
Sichern Sie Ihre Daten
mysqldump -u root -p --default-character-set=utf8mb4 mydatabase > backup.sql
Einstellungen erneut prüfen
SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';
SHOW CREATE TABLE users;
Testdaten einfügen und anzeigen
INSERT INTO users (name, email) VALUES ('Test User', 'test@example.com');
SELECT * FROM users;
Zusammenfassung
- Serverweiter Zeichensatzwechsel : Edit
my.cnfund setzecharacter-set-server=utf8mb4 - Datenbank‑Zeichensatzwechsel :
ALTER DATABASE mydatabase CHARACTER SET utf8mb4 - Tabellen‑Zeichensatzwechsel :
ALTER TABLE users CONVERT TO CHARACTER SET utf8mb4 - Spalten‑Zeichensatzwechsel :
ALTER TABLE users MODIFY COLUMN name VARCHAR(255) CHARACTER SET utf8mb4 - Nach Änderungen immer die Einstellungen überprüfen und Ihre Daten testen
5. Fehlersuche nach dem Ändern des Zeichensatzes
Nach dem Ändern des MySQL‑Zeichensatzes können Fälle auftreten, in denen das System nicht korrekt funktioniert oder gespeicherte Daten beschädigt werden. In diesem Abschnitt erklären wir häufige Probleme und deren Behebung im Detail.
Ursachen von Mojibake und wie man es behebt
Wenn nach dem Ändern des Zeichensatzes Mojibake auftritt, sind die folgenden Ursachen häufig.
| Cause | How to Check | Solution |
|---|---|---|
| The client character set setting differs | SHOW VARIABLES LIKE 'character_set_client'; | Run SET NAMES utf8mb4; |
| Existing data was stored using a different encoding | SELECT HEX(column_name) FROM table_name; | Use CONVERT() or re-export the data |
| The connection encoding is not correct | Connect with mysql --default-character-set=utf8mb4 | Adjust the client-side character set configuration |
| Application settings (PHP/Python, etc.) are incorrect | mysqli_set_charset($conn, 'utf8mb4'); | Standardize the application’s character set settings |
Lösung #1: Client‑Zeichensatz korrekt setzen
SET NAMES utf8mb4;
Lösung #2: Vorhandene Daten korrekt konvertieren
UPDATE users SET name = CONVERT(CAST(CONVERT(name USING latin1) AS BINARY) USING utf8mb4);
Hinweise beim Konvertieren von latin1 zu utf8mb4
Sicheres Vorgehen
- Aktuelle Daten sichern
mysqldump -u root -p --default-character-set=latin1 mydatabase > backup.sql
- Datenbank‑Zeichensatz ändern
ALTER DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- Tabellen‑Zeichensatz ändern
ALTER TABLE users CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- Daten erneut importieren
mysql -u root -p --default-character-set=utf8mb4 mydatabase < backup.sql
Daten sind nach der Änderung nicht durchsuchbar
Fall #1: LIKE‑Suche funktioniert nicht
SELECT * FROM users WHERE name COLLATE utf8mb4_unicode_ci LIKE '%Tanaka%';
Fall #2: Sortierreihenfolge hat sich geändert
SELECT * FROM users ORDER BY BINARY name;
Maßnahmen auf Anwendungsebene
Für PHP
mysqli_set_charset($conn, 'utf8mb4');
Für Python (MySQL Connector)
import mysql.connector
conn = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="mydatabase",
charset="utf8mb4"
)
For Node.js (MySQL2)
const mysql = require('mysql2');
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'mydatabase',
charset: 'utf8mb4'
});
Summary
- Post-change issues generally fall into three categories: client settings, data conversion, and application settings.
- To prevent mojibake, standardize the client character set using
SET NAMES utf8mb4. - Watch for LIKE search and sort order changes, and specify
COLLATEwhen needed. - Set
utf8mb4in your application as well to avoid encoding mismatches.
6. How Character Set Changes Affect Performance
When changing the MySQL character set to utf8mb4, there are several performance considerations, such as increased storage usage and index limitations.
In this section, we explain the impact and the best countermeasures.
Increased Storage Usage
Compared to MySQL’s utf8, utf8mb4 can use up to 4 bytes per character,
so the overall table size may increase.
Max bytes per character by character set
| Character Set | Max Bytes per Character |
|---|---|
latin1 | 1 byte |
utf8 | 3 bytes |
utf8mb4 | 4 bytes |
For example, with utf8, VARCHAR(255) is up to 765 bytes (255×3),
but with utf8mb4, it becomes up to 1020 bytes (255×4).
Countermeasure
ALTER TABLE posts MODIFY COLUMN title VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Increased Index Size
MySQL enforces a maximum index key length.
After switching to utf8mb4, index entries become larger, and you may hit the limit—making indexes unusable.
Check index impact
SHOW INDEX FROM users;
Example error
ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
Countermeasure
ALTER TABLE users MODIFY COLUMN email VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Impact on Query Performance
Changing the character set to utf8mb4 may affect query execution speed.
Operations that may be affected
LIKEsearches over large datasetsORDER BYprocessing- JOIN query performance
Countermeasure
CREATE INDEX idx_name ON users(name(100));
Memory Usage and Buffer Tuning
With utf8mb4, memory usage may increase.
Recommended settings
[mysqld]
innodb_buffer_pool_size = 1G
query_cache_size = 128M
Summary
- Switching to
utf8mb4increases storage usage. - Index sizes increase and may exceed limits.
- Query performance can be affected.
- Because memory usage may increase, buffer sizes may need tuning.
7. Recommended Settings (Best Practices)
By setting MySQL character sets appropriately, you can maintain data integrity while optimizing performance.
In this section, we present recommended MySQL character set configurations and explain key points for an optimal setup.
Recommended MySQL Character Set Configuration
| Item | Recommended Setting | Reason |
|---|---|---|
| Character Set | utf8mb4 | Supports all Unicode characters including emoji and special characters |
| Collation | utf8mb4_unicode_ci | Case-insensitive and suitable for multilingual systems |
| Storage Engine | InnoDB | Good balance of performance and consistency |
| Indexed string length | VARCHAR(191) | Avoids exceeding MySQL index limits |
Recommended my.cnf Settings
1. MySQL Server Character Set Settings
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
skip-character-set-client-handshake
innodb_large_prefix = ON
innodb_file_format = Barracuda
innodb_file_per_table = 1
innodb_buffer_pool_size = 1G
query_cache_size = 128M
2. Client-Side Character Set Settings
[client]
default-character-set = utf8mb4
Recommended Database Settings
CREATE DATABASE mydatabase DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
To change an existing database character set:
ALTER DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Recommended Table Settings
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
email VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
Zeichensatz für vorhandene Tabellen ändern
ALTER TABLE users CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Unterschiede zwischen utf8mb4_general_ci und utf8mb4_unicode_ci
| Collation | Characteristics | Use Case |
|---|---|---|
utf8mb4_general_ci | Faster comparisons, but less accurate | Performance-focused systems |
utf8mb4_unicode_ci | Unicode-standard, more accurate comparisons | General-purpose use (recommended) |
✅ Wenn Sie mehrsprachige Unterstützung oder genaue Sortierung benötigen, wählen Sie utf8mb4_unicode_ci.
Indexoptimierung
CREATE FULLTEXT INDEX idx_fulltext ON articles(content);
Zusammenfassung
- Die Kombination aus
utf8mb4+utf8mb4_unicode_ciwird empfohlen. - Standardisieren Sie die Servereinstellungen (
my.cnf) und die Zeichensatzverbindungen. - Geben Sie
utf8mb4explizit auf Datenbank-, Tabellen- und Spaltenebene an. - Verwenden Sie
VARCHAR(191), um Beschränkungen der Indexschlüssellänge zu vermeiden. - Verwenden Sie
utf8mb4_unicode_cifür genaue Vergleiche.
8. FAQ
Hier sind häufige praxisnahe Fragen zum Ändern von MySQL-Zeichensätzen.
Wir behandeln außerdem wie man Fehler behandelt und wie man die besten Einstellungen wählt.
Was ist der Unterschied zwischen utf8 und utf8mb4?
SHOW VARIABLES LIKE 'character_set_server';
Führt das Ändern des MySQL-Zeichensatzes zu Datenverlust?
mysqldump -u root -p --default-character-set=utf8mb4 mydatabase > backup.sql
Wie behebe ich Mojibake, wenn es auftritt?
UPDATE users SET name = CONVERT(CAST(CONVERT(name USING latin1) AS BINARY) USING utf8mb4);
Welche Risiken gibt es beim Konvertieren von latin1 zu utf8mb4?
ALTER DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Beeinflusst das Umstellen auf utf8mb4 die Leistung?
ALTER TABLE users MODIFY COLUMN email VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Welche sollte ich verwenden: utf8mb4_general_ci oder utf8mb4_unicode_ci?
| Collation | Characteristics | Use Case |
|---|---|---|
utf8mb4_general_ci | Faster comparisons, but less accurate | Performance-focused systems |
utf8mb4_unicode_ci | Unicode-standard, accurate comparisons | General-purpose use (recommended) |
Werden Abfragen nach dem Umstellen auf utf8mb4 langsamer?
CREATE FULLTEXT INDEX idx_fulltext ON articles(content);
Zusammenfassung
✅ utf8mb4 wird empfohlen. utf8 wird aufgrund seiner Einschränkungen nicht empfohlen.
✅ Vor Änderungen immer die Einstellungen mit SHOW VARIABLES prüfen.
✅ Verwenden Sie Export/Import‑Workflows, um Mojibake zu verhindern.
✅ Berücksichtigen Sie Indexbeschränkungen und verwenden Sie VARCHAR(191) wo geeignet.
✅ Für die Leistung passende Indizes hinzufügen.
Abschließende Hinweise
Das Ändern des MySQL-Zeichensatzes ist nicht nur eine einfache Konfigurationsanpassung – es ist eine kritische Aufgabe, die Datenintegrität und Leistung beeinflussen kann.
Durch das Befolgen der richtigen Einstellungen und Verfahren können Sie sicher und effektiv zu utf8mb4 migrieren.
🔹 Befolgen Sie die Schritte in diesem Artikel und konfigurieren Sie Ihren Zeichensatz korrekt! 🔹


