21 votes

Caractères de largeur zéro incorporés dans les numéros de téléphone lorsqu'ils sont copiés du carnet d'adresses de MacOS

Chaque fois que j'utilise Contacts.app pour remplir un formulaire sur un site web, j'ai un problème avec n'importe quel champ de numéro de téléphone.

Contacts.app ajoute unicode "left-to-right override" (point de code U+202D : E2 80 AD dans les contextes UTF-8, 20 2D dans les contextes UTF-16) avant le premier chiffre, et "pop directional formatting" (point de code U+202C : E2 80 AC dans les contextes UTF-8, 20 2C dans les contextes UTF-16) après le dernier chiffre. Cela dérange de nombreux sites Web, car ces chiffres ne sont pas reconnus comme des chiffres de numéro de téléphone valides. Comme il s'agit de symboles de largeur nulle, les premières fois que j'ai rencontré ce problème, je n'ai même pas compris ce qui n'allait pas.

Notez que cela se produit toujours si je désactive JavaScript ou si j'utilise un éditeur de texte de bureau comme TextWrangler (c'est grâce à TextWrangler que j'ai découvert à l'origine quels symboles de largeur zéro étaient insérés) ; il se trouve que je ne me préoccupe que des sites web parce que les sites web sont la seule chose qui valide que les numéros de téléphone correspondent à un modèle tel que la regex [0-9()+\s]*

Cela se produit avec tous les numéros de téléphone dans Contacts, quel que soit leur format (certains sont formatés en anglais, d'autres en américain, d'autres en allemand).

Méthode : ouvrir Contacts.app, sélectionner n'importe quelle personne, double (ou triple) clic sur un numéro de téléphone pour tout sélectionner, C-V pour copier-coller ; si je colle dans une application qui affiche les caractères non imprimables comme TextWrangler, je peux voir leur existence, si je colle dans un navigateur web, ils sont présents mais de largeur nulle, car les touches fléchées "collent" à ces positions et la touche de suppression les supprime en fait.

Cela se passe comme décrit dans Safari et Chrome. Dans Firefox, il se comporte légèrement différemment et semble supprimer automatiquement les caractères supplémentaires dès que je les franchis avec mes touches fléchées ( ?!).

Comment empêcher Contacts.app d'ajouter ces symboles unicode ?

9voto

Haentz Points 302

mise à jour 12/2021 : Ce problème n'est toujours pas résolu depuis MacOS 12.0.1 Monterey. Incroyable.


Ce n'est pas une réponse mais je voulais ajouter une capture d'écran car certaines personnes l'ont demandé.

J'ai également remarqué ce bogue (aussi récemment que dans la version 10.15.7) et j'ai été heureux de constater qu'il avait déjà été signalé, et je suis surpris qu'il n'ait pas reçu plus d'attention.

J'ai déposé les bogues #47763641 & #5235503 auprès d'Apple, j'espère qu'ils en tiendront compte. J'encourage les autres à le signaler.

Voici les étapes à suivre pour reproduire et une capture d'écran qui montre le problème :

  1. Dans Contacts.app, cliquez avec le bouton droit de la souris sur Copier sur un numéro de téléphone.
  2. Collez dans Sublime Text ou tout autre éditeur de texte en clair.
  3. Enregistrer sous test.txt
  4. Ouvrez dans un éditeur hexagonal, j'ai utilisé Hex Fiend dans cet exemple
  5. Vous pouvez maintenant voir les octets supplémentaires (je les ai mis en évidence ci-dessous).

zwsp-chars-screenshot

quelques informations :

  1. Cela semble n'affecter que les champs de numéro de téléphone. Les autres champs tels que l'email, les adresses, les notes, etc. ne présentent pas ce problème.
  2. Si, au lieu d'utiliser command + A (select-all), vous sélectionnez très soigneusement du début du numéro de téléphone jusqu'à la fin, puis vous copiez, les caractères zwsp indésirables ne sont pas copiés.

Ma solution pour l'instant est un flux de travail Alfred que j'ai mappé à C qui copie le champ sélectionné et supprime les espaces blancs. Ce n'est pas très élégant, mais cela fonctionne suffisamment bien jusqu'à ce qu'Apple corrige le problème (ce qu'ils ont peut-être fait à partir de la 11.0).

-6voto

Ruskes Points 44895

Contacts.app ne fait pas cela.

Il s'agit du ou des sites web que vous visitez et dont vous remplissez les formulaires.

C'est eux qui ajoutent le caractère caché.

Article :

Rendez-les visibles dans Chrome

Pourquoi ?

Les caractères de largeur zéro peuvent être utilisés pour les empreintes digitales. ¡!

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X