Ogni volta che utilizzo Contacts.app per compilare un modulo su un sito web, ho un problema con qualsiasi campo del numero di telefono.
Contacts.app aggiunge l'unicode "left-to-right override" (E2 80 AD nei contesti UTF-8, 20 2D nei contesti UTF-16) prima della prima cifra e "pop" nella formattazione direzionale (E2 80 AC in Contesti UTF-8, 20 2C in contesti UTF-16) dopo l'ultima cifra. Molti siti web si arrabbiano di questo, perché quelli non sono riconosciuti come numeri di telefono validi. Dato che sono simboli a larghezza zero, le prime volte che ho visto questo problema non ho nemmeno capito cosa stava andando storto.
Si noti che ciò accade ancora se spengo JavaScript o utilizzo un editor di testo come TextWrangler (TextWrangler è il modo in cui ho originariamente scoperto quali simboli a larghezza zero sono stati inseriti); come succede, mi preoccupo solo dei siti web perché i siti web sono l'unica cosa che convalida che i numeri di telefono corrispondono a un modello come l'espressione regolare [0-9()+\s]*
Questo accade con tutti i numeri di telefono in Contatti, indipendentemente da chi (alcuni sono formattati come Regno Unito, alcuni come Stati Uniti, altri come tedesco).
Metodo: apri Contacts.app, seleziona una persona, fai doppio (o triplo) clic su un numero di telefono per selezionarlo tutto, ⌘C-⌘V per copiare e incollare; se si incolla in un'app che mostra caratteri non stampabili come TextWrangler, posso vedere la loro esistenza, se si incolla in un browser web è presente ma a larghezza zero, poiché i tasti freccia "si attaccano" a quelle posizioni e il tasto cancella lo fa in fatto rimuoverli.
Succede come descritto in Safari e Chrome. In Firefox, si è comportato in modo leggermente diverso e sembrava eliminare automaticamente i caratteri in più non appena li ho passati con i miei tasti freccia (?!).
Come faccio a interrompere Contacts.app dall'aggiunta di questi simboli Unicode?