Potential character encoding issue in llx_c_currencies.sql for PEN currency
Bug
During a clean installation on a fresh database configured with utf8mb4, the default entry for PEN currency appears with corrupted characters (Perú Sol) in the currencies dictionary.
This is caused by line 137 in htdocs/install/mysql/data/llx_c_currencies.sql:
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'PEN', '[83,47]', 1, 'Perú Sol');
Most other entries in this file use plain English labels without accents (e.g., Panama Balboa, Pakistan Rupee, Paraguay Guarani). The accented character ú causes seed data corruption on UTF-8 database environments upon initialization.
Dolibarr Version
21.0, develop (24.0)
Environment PHP
8.2 (Official Docker image)
Environment Database
MariaDB 10.11 (utf8mb4_unicode_ci)
Steps to reproduce the behavior and expected behavior
Steps to reproduce:
- Deploy a clean Dolibarr instance using Docker Compose with MariaDB (configured with utf8mb4).
- Complete the initial installation wizard.
- Navigate to Home -> Setup -> Dictionaries -> Currencies.
- Search for PEN (Peru Sol).
Expected behavior: The label should display as "Peru Sol" (or "Perú Sol" without encoding corruption).
Actual behavior: The label displays as "Perú Sol".
Suggested Fix:
Change 'Perú Sol' (with accent mark) to 'Peru Sol' (without accent mark) in htdocs/install/mysql/data/llx_c_currencies.sql to maintain consistency with other plain text / English currency labels in the repository.
Attached files
Source: Dolibarr/dolibarr