Skip to content

ASCII Transliteration β€” Typing Non-ASCII Text

Android Supported iOS Not supported

adb shell input text is ASCII-only β€” a single non-ASCII character makes the whole command fail and leaves the field blank. When the agent types text on Android, Ghost now transliterates it to the closest ASCII first, so type_text degrades to something usable instead of silently typing nothing.

Typed (transliterated non-ASCII): 'SautΓ©' -> 'Saute'

Transliteration is NFKD normalization with combining marks dropped:

InputTyped
SautΓ©Saute
cafΓ©cafe
ZΓΌrichZurich
ζ—₯本θͺž(dropped)
cafΓ© πŸ˜€cafe

Characters with no ASCII base (CJK, emoji) are dropped rather than erroring. Pure-ASCII text is passed through untouched (fast path).

This is the graceful fallback for the plain input text path β€” Android type_text only. There’s no config and no kill-switch; it’s always on.

For full-fidelity emoji / CJK, use type_unicode (ADBKeyboard broadcast), which is unchanged. iOS has its own text-entry path and is unaffected.