Hatten Sie jemals Probleme beim Einfügen einer aus den Kontakten kopierten Telefonnummer in ein Webformular? Es ist vielleicht kein häufiges Problem, aber es ist eines, das „TNGD“-Leser Dave Fultz nach einem frustrierenden Gerangel mit einem Online-Bestellformular gelöst hat.
Dave versuchte, ein Paket in Frankreich zu bestellen, und das Formular forderte eine Handynummer an der Lieferadresse an. Um sicherzustellen, dass er es richtig gemacht hat, kopierte er es aus den Kontakten und fügte es in das Formular ein, aber als er auf „Senden“ klickte, schlug das Formular fehl. Er versuchte verschiedene Formate für die Telefonnummer – in Frankreich sollte die führende Null in der zehnstelligen Nummer bei Anrufen innerhalb des Landes enthalten sein, aber weggelassen werden, wenn sie aus dem Ausland angerufen wurden – ohne Erfolg. Das Einfügen der Nummer in einige Online-Verifizierungsdienste schlug ebenfalls fehl. Auch das Einfügen als Klartext machte keinen Unterschied.
Also schrieb Dave seiner Freundin eine SMS an die Nummer, was gut funktionierte, und bat sie, ihm die Nummer genau so zu schicken, wie sie sie einer Französin geben würde. Es sah genauso aus wie seine Version, aber als er die Nummer aus dem Nachrichten-Thread kopierte und einfügte, akzeptierte das Formular sie! Was war los?
Dave hatte vor, ein Python-Skript in Terminal zu verwenden, um die Nummer, die er aus den Kontakten hatte, mit der Nummer zu vergleichen, die sein Freund gesendet hatte, aber als er seine Nummer in Terminal einfügte, zeigte sich das Problem sofort, wie Sie sehen können im hervorgehobenen Text in meinem Test unten, der zusätzliche Zeichen auf beiden Seiten der Telefonnummer anzeigt.
Es stellt sich heraus, dass Kontakte auf dem Mac alle Telefonnummern in zwei Nullen einschließen-breite (und damit unsichtbare) Unicode-Zeichen: U+202D (LEFT-TO-RIGHT OVERRIDE) und U+202C (POP DIRECTIONAL FORMATTING). Dave spekulierte, dass diese Zeichen die Telefonnummer von der umgebenden Textflussrichtung ausnehmen, was beispielsweise bei Hebräisch und Arabisch von rechts nach links wäre.
Kontakte scheinen diese Zeichen mit der Telefonnummer zu speichern, Da sie jedoch keine Breite haben, gibt es keine Möglichkeit, sie auszuwählen, die ich finden konnte. Ich glaube nicht, dass Kontakte diese Zeichen als Teil der Kopie zu den Nummern hinzufügen, denn wenn Sie ein paar Zeichen in der Mitte einer Nummer auswählen und sie dann kopieren und in Terminal einfügen, sind die unsichtbaren Zeichen nicht vorhanden. Sie sind auch einzigartig für die Telefonnummernfelder; eine Nummer, die im Notizfeld gespeichert ist, hat sie auch nicht. Schließlich beschränkt sich das Problem auf Kontakte auf dem Mac; Das Problem betrifft in meinen Tests keine Telefonnummern, die von einem iPhone oder iPad kopiert wurden. (Einige spätere Recherchen ergaben eine Ask Different”-Thread, der das Problem beschreibt – das Apple als Fehler gemeldet wurde – und bestätigt, dass es in macOS 13.1 Ventura immer noch existiert.)
Warum nicht diese Zeichen mehr Probleme machen? Wenn Entwickler Apps entwerfen, die Daten akzeptieren, erstellen sie im Allgemeinen Eingabefilter, die unerwünschte Daten herausfiltern. Ein Telefonnummernfeld hat keinen Grund, unsichtbare Satzzeichen zu akzeptieren, daher ist es eine gute Programmierpraxis, sie wegzulassen. Nicht zuletzt ist das Filtern von Benutzereingaben eine wesentliche Sicherheitspraxis, da Angreifer dies häufig versuchen Systemdaten zu füttern, um bösartigen Code einzuschleusen oder Pufferüberläufe zu verursachen, die ausgenutzt werden könnten.
Obwohl es seltsam erscheint, dass Apple Kontakte so konzipiert hat, dass jede Telefonnummer in diese Null-Breite-Zeichen eingeschlossen wird, schützt es Telefonnummern, die in Textflüsse von rechts nach links eingefügt werden, können nicht geändert werden. Es scheint jedoch nicht notwendig zu sein, dass Kontakte dies für alle Mac-Benutzer tun. Apple könnte versuchen herauszufinden, wann dies sinnvoll wäre – vielleicht nur, wenn der Benutzer in den Sprach-und Regionseinstellungen von macOS eine Sprache von rechts nach links aktiviert hat.
Wenn Sie in eine Situation geraten, in der a Die aus den Kontakten kopierte und eingefügte Telefonnummer funktioniert nicht wie erwartet. Die einfachste Lösung besteht darin, die Nummer von Hand einzugeben. Sie können es auch in Terminal einfügen und nur die Telefonnummer erneut kopieren, wobei Sie die zusätzlichen Unicode-Zeichen auf beiden Seiten vermeiden.
Wenn Sie regelmäßig auf dieses Problem stoßen und ein paar Geek-Punkte sammeln möchten, können Sie ein Keyboard Maestro-Makro erstellen, das diese zusätzlichen Zeichen automatisch entfernt. Verärgert über die Notwendigkeit, Zahlen wie ein Tier neu einzugeben, tat Dave genau das, sodass Sie sein Makro als Ausgangspunkt für jeden für Sie sinnvollen Workflow verwenden konnten.
Oder Sie könnten das tun, was ich tue, und es fallen lassen Kontakte für Cardhop, das nicht unter dem Problem leidet und viel angenehmer zu verwenden ist (siehe „Cardhop stellt Kontakte in den Mittelpunkt“, 18. Oktober 2017 und „Cardhop 2.0 gebündelt mit Fantastical in Flexibits Premium“, 27. Mai 2021).