Avez-vous déjà rencontré des difficultés pour coller un numéro de téléphone copié depuis Contacts dans un formulaire Web ? Ce n’est peut-être pas un problème courant, mais c’est celui que Dave Fultz, lecteur de”TNGD”, a résolu après une bataille frustrante avec un formulaire de commande en ligne.
Dave essayait de commander un colis en France, et le formulaire demandait un numéro de portable à l’adresse de livraison. Pour s’assurer qu’il avait bien compris, il l’a copié à partir de Contacts et l’a collé dans le formulaire, mais lorsqu’il a cliqué sur Soumettre, le formulaire a échoué à la vérification. Il a essayé différents formats pour le numéro de téléphone-en France, le zéro initial du numéro à dix chiffres doit être inclus lors d’un appel à l’intérieur du pays mais omis lors d’un appel depuis l’étranger-sans effet. Le collage du numéro dans quelques services de vérification en ligne a également échoué. Le collage en texte brut n’a pas non plus fait de différence.
Alors Dave a envoyé un texto à son amie au numéro, qui a bien fonctionné, et lui a demandé de lui envoyer le numéro exactement comme elle le donnerait à un Français. Cela ressemblait à sa version, mais lorsqu’il a copié et collé le numéro du fil Messages, le formulaire l’a accepté ! Que se passait-il ?
Dave prévoyait d’utiliser un script Python dans Terminal pour comparer le numéro qu’il avait de Contacts avec celui que son ami avait envoyé, mais lorsqu’il a collé son numéro dans Terminal, le problème s’est révélé instantanément, comme vous pouvez le voir dans le texte en surbrillance de mon test ci-dessous, qui affiche des caractères supplémentaires de chaque côté du numéro de téléphone.
Il s’avère que Contacts sur Mac inclut tous les numéros de téléphone entre deux zéros-caractères Unicode larges (et donc invisibles) : U+202D (LEFT-TO-RIGHT OVERRIDE) et U+202C (POP DIRECTIONAL FORMATING). Dave a émis l’hypothèse que ces caractères exemptaient le numéro de téléphone de la direction du flux de texte environnant, qui serait de droite à gauche avec l’hébreu et l’arabe, par exemple.
Les contacts semblent stocker ces caractères avec le numéro de téléphone, mais comme ils sont de largeur nulle, il n’y a aucun moyen d’éviter de les sélectionner que j’ai pu trouver. Je ne crois pas que Contacts ajoute ces caractères aux numéros dans le cadre de la copie, car si vous sélectionnez quelques caractères au milieu d’un numéro, puis copiez-les et collez-les dans Terminal, les caractères invisibles ne seront pas présents. Ils sont également uniques aux champs de numéro de téléphone ; un numéro stocké dans le champ Notes ne les aura pas non plus. Enfin, le problème est limité aux contacts sur Mac ; le problème n’affecte pas les numéros de téléphone copiés à partir d’un iPhone ou d’un iPad lors de mes tests. (Certaines recherches ultérieures ont révélé un fil de discussion Ask Different qui décrit le problème-qui a été signalé à Apple comme un bogue-et confirme qu’il existe toujours dans macOS 13.1 Ventura.)
Pourquoi ces caractères ne causer plus de problèmes ? Lorsque les développeurs conçoivent des applications qui acceptent des données, ils créent généralement des filtres d’entrée qui filtrent les données indésirables. Un champ de numéro de téléphone n’a aucune raison d’accepter des caractères de ponctuation invisibles, c’est donc une bonne pratique de programmation de les supprimer. Si rien d’autre, filtrer les entrées utilisateur est une pratique de sécurité essentielle car les attaquants essaieront souvent pour alimenter un système de données afin d’injecter du code malveillant ou de provoquer des débordements de mémoire tampon qui pourraient être exploités.
Ainsi, même s’il semble étrange qu’Apple ait conçu Contacts pour inclure chaque numéro de téléphone dans ces caractères à largeur nulle, cela protège les numéros de téléphone collés dans le texte de droite à gauche ne sont pas modifiés. Cependant, il ne semble pas nécessaire que Contacts le fasse pour tous les utilisateurs de Mac. Apple pourrait essayer d’identifier quand cela aurait du sens, peut-être uniquement lorsque l’utilisateur a activé une langue de droite à gauche dans les paramètres de langue et de région de macOS.
En pratique, si vous rencontrez une situation où un Le numéro de téléphone copié et collé à partir des contacts ne fonctionne pas comme prévu, la solution la plus simple consiste à taper le numéro à la main. Vous pouvez également le coller dans Terminal et copier à nouveau uniquement le numéro de téléphone, en évitant les caractères Unicode supplémentaires de chaque côté.
Si vous rencontrez régulièrement ce problème et souhaitez accumuler des points de geek, vous pouvez créer une macro Keyboard Maestro qui supprime automatiquement ces caractères supplémentaires. Irrité par la nécessité de retaper les nombres comme un animal, Dave Fultz a fait exactement cela, vous pouvez donc utiliser sa macro comme point de départ pour tout flux de travail qui vous convient.
Ou vous pouvez faire ce que je fais et fiez-vous plutôt à l’application de gestion des contacts Cardhop, qui ne souffre pas du problème et est beaucoup plus agréable à utiliser (voir”Cardhop Puts Contacts Front and Center”, 18 octobre 2017, et”Cardhop 2.0 Bundled with Fantastical in Flexibits Premium”, 27 mai 2021).