Comment remplacer/supprimer 4(+)-octets de caractères à partir d'une chaîne UTF-8 en PHP?

Il semble que MySQL ne prend pas en charge personnages avec plus de 3 octets par défaut UTF-8 charset.

Donc, en PHP, comment puis-je me débarrasser de tous les 4 (et plus)-octets de caractères dans une chaîne de caractères et de les remplacer par quelque chose comme par un autre caractère?

  • Êtes-vous sûr que les données que vous allez fonctionner avec la volonté de toujours contenir des caractères qui ne rentre pas dans mysql 3 octets en utf-8?
  • Êtes-vous sûr qu'il y a des caractères similaires? 3 octets de vous donner l'ensemble du Plan Multilingue de Base; si votre besoin de beaucoup plus rares personnages au-delà de cela, envisager un autre codage Unicode (par exemple utf-16).
  • Le problème c'est que je veux éviter les autres, parce que MySQL tronque les textes à ce point si quelqu'un met un de ces caractères spéciaux, là.
  • Voici le billet: fluxbb.org/development/core/tickets/485
  • Je suis désolé, mais c'est très bien comme disant: "eh Bien, ß et ž et ne rentre pas en ASCII, donc, nous allons faire en ss et z et c; la perte de sens et la grammaire? Je n'ai pas de soins."
  • Je pensais que MySQL a corrigé ce bug?
  • Peut-être que dans les versions plus récentes...
  • MySQL prend en charge ces caractères maintenant, à travers les utf8mb4 jeu de caractères.
  • si ma réponse ci-dessous est ok, veuillez cliquer sur le gris "check" sur le côté gauche de celui-ci (points ci-dessous)

InformationsquelleAutor Franz | 2011-12-13