Emojis remplacés par "?" dans les réponses administrateur aux avis produits

  • Posts: 693
  • Thank you received: 34
  • Hikashop Business Review Plugin
4 hours 2 minutes ago #373442

-- HikaShop version -- : 6.5.2
-- Joomla version -- : 5.4.8
-- PHP version -- : 8.4.24

Bonjour,

J’utilise Joomla 5.4.8 avec HikaShop et MySQL 8.0.46.

Les emojis fonctionnent correctement dans les articles Joomla classiques : ils sont visibles dans l’éditeur et restent correctement enregistrés après la sauvegarde.

En revanche, lorsque je réponds en tant qu’administrateur à un avis/commentaire client sur une fiche produit HikaShop, l’emoji est visible dans l’éditeur avant l’enregistrement, mais il est remplacé par "?" immédiatement après la sauvegarde.

Comme les emojis fonctionnent dans les contenus Joomla, le problème semble limité aux avis/commentaires produits HikaShop, probablement à la table ou à la colonne utilisée pour enregistrer la réponse de l’administrateur.

J’ai vérifié les tables concernées : `npphbd_hikashop_vote` et `npphbd_hikashop_vote_user` utilisent actuellement la collation `utf8mb3_general_ci`.

Pouvez-vous me confirmer si ces tables doivent être converties en `utf8mb4_unicode_ci` afin de prendre en charge les emojis? Je préfère éviter de modifier manuellement la structure de la base de données avant d’avoir votre confirmation.

Informations sur ma base de données :

- Collation de la base : `utf8mb4_unicode_ci`
- Collation de connexion : `utf8mb4_0900_ai_ci`

Merci,
Lorenzo

Please Log in or Create an account to join the conversation.

  • Posts: 86180
  • Thank you received: 14217
  • MODERATOR
17 minutes ago #373444

Bonjour,

Oui, vous avez vu juste. Les tables de HikaShop sont créées en utf8 sur 3 octets, qui n'a pas la place de stocker un emoji, donc MySQL le remplace par un "?" au moment de l'enregistrement, alors que vos tables Joomla sont en utf8mb4 et l'acceptent. Ce n'est pas limité aux avis produits: toutes les tables de HikaShop sont dans ce cas, pas seulement les deux tables de vote.

La conversion en utf8mb4_unicode_ci, la collation de votre base, est donc bien la marche à suivre. Après une sauvegarde de votre base, cette requête vous donne la liste des ALTER TABLE à exécuter:

SELECT CONCAT('ALTER TABLE `', TABLE_NAME, '` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;') FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME LIKE 'npphbd\_hikashop\_%';

Il ne reste plus qu'à exécuter les requêtes qu'elle affiche. Sur une boutique de taille courante, l'ensemble prend quelques secondes. Les emojis déjà transformés en "?" sont perdus, ces réponses seront à réécrire.

Nous avons également modifié HikaShop pour que cela se fasse tout seul: le bouton "Vérifier la base de données" de la configuration, ainsi que la mise à jour, convertissent maintenant les tables de HikaShop en utf8mb4 et signalent celles que le serveur MySQL refuserait de convertir, avec la requête à passer à la main dans ce cas. Ce sera dans la prochaine version, la 6.7.0

Please Log in or Create an account to join the conversation.

Time to create page: 0.052 seconds
Powered by Kunena Forum