8768 sujets

Développement web côté serveur, CMS

Bonjour à tous,
dans un formulaire PHP, je récupère des noms prénoms, et une cliente qui bosse sur son ipad a saisi des noms avec des apostrophes différents de ceux que l'on a sur de la saisi PC.
pour bien vous montrer la différence :
C'O’LIN
le premier est un apostrophe "standard" et le 2e est un apostrophe courbe, si je ne me trompe pas.
Or, j'ai besoin (pour un souci d'affichage ensuite sur PDF) d'avoir que des apostrophes "normaux". Mais je n'arrive pas à le convertir.... j'ai essayé :
$nom = str_replace("´", "'", $_POST['nom']);
$nom = html_entity_decode($_POST['nom'],ENT_QUOTES | ENT_HTML5);
$nom = utf8_decode($_POST['nom']);
$nom = html_entity_decode(htmlentities($_POST['nom']));
$nom = iconv('UTF-8', 'windows-1252', $_POST['nom']);
$nom = str_replace(chr(180), chr(39), $_POST['nom']);
$nom = str_replace(chr(146), chr(39), $_POST['nom']);
$nom = str_replace(chr(180), "'", $_POST['nom']);

je précise que tous mes fichiers, ma base ect... tout est en UTF-8. Je n'ai d'ailleurs pas de souci d'affichage avec un ? par exemple... je voudrais juste avoir QUE des apostrophes de ce genre :
' et pas ’.
Merci de votre aide
Modérateur
Et l'eau,

Tu dois parler des apostrophes typographiques et guillemets typographiques. Dans un texte, tu n'as pas à les convertir puisque ce sont des caractères de texte d'édition. Il n'y a qu'en informatique qu'on doit utiliser les apostrophes et guillemets qu'il y a sur ton clavier. D'ailleurs, un texte en français avec des guillemets doit s'écrire de cette manière :
confusius a écrit :

« Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson »

À noter que les Anglais et les Allemands ont un type de guillemets différents.

Pour ce qui est de ton problème, j'ai eu un souci similaire une fois (un fichier excel encodé avec ces caractères et ils n'avaient pas leurs places puisque ces caractères délimités une chaine de caractères. Comment je m'en suis sortie (de mémoire) ? si je ne dis pas de bêtise, j'avais copié le caractère et j'avais fait un search & replace.

ps :
- Des textes plus élégants avec les apostrophes typographiques
- Utilisez les bons guillemets typographiques
Modifié par niuxe (23 Feb 2022 - 04:07)
Anedja a écrit :
Je pense que vous confondez l’apostrophe (’) avec l’accent aigu (´).


non non je ne confonds pas...
niuxe a écrit :
Et l'eau,

Tu dois parler des apostrophes typographiques et guillemets typographiques. Dans un texte, tu n'as pas à les convertir puisque ce sont des caractères de texte d'édition. Il n'y a qu'en informatique qu'on doit utiliser les apostrophes et guillemets qu'il y a sur ton clavier. D'ailleurs, un texte en français avec des guillemets doit s'écrire de cette manière :

À noter que les Anglais et les Allemands ont un type de guillemets différents.

Pour ce qui est de ton problème, j'ai eu un souci similaire une fois (un fichier excel encodé avec ces caractères et ils n'avaient pas leurs places puisque ces caractères délimités une chaine de caractères. Comment je m'en suis sortie (de mémoire) ? si je ne dis pas de bêtise, j'avais copié le caractère et j'avais fait un search & replace.

ps :
- Des textes plus élégants avec les apostrophes typographiques
- Utilisez les bons guillemets typographiques


je crois qu'on s'est mal compris...
Je ne cherche pas à savoir si cet apostrophe est correct ou pas d'un point de vue typographique, je cherche à faire en sorte que même si mon utilisateur ne tape pas l'apostrophe que j'ai moi même l'habitude d'utiliser, je puisse AVANT de l'enregistrer dans ma base le remplacer par celui que je veux... En l’occurrence dans mon exemple, si mon utilisateur tape : C'O’LIN (j'ai volontairement pris un exemple qui contient les 2 types d'apostrophes), je voudrais avoir à la fin C'O'LIN (c'est à dire remplacer le 2e type d'apostrophe par le premier, et donc n'avoir QUE le 1er type d'apostrophe dans tous les textes enregistrés)

ce caractère ' est différent de celui là ’ et moi je ne veux avoir que le premier au final, c'est à dire celui là '