(this is maybe too edge-case to be worth looking at) A couple circumstances cause repeated instances of \001 and any instances of \177 to be removed from as string:
$ a=$'<\001\001><\177\177>' $ z=$(compgen -W "$a"); echo "${z@A}" z=$'<\001><>' $ declare -A A=(); printf -v "A[$a]" X; declare -p A declare -A A=([$'<\001><>']="X" ) The latter is resolved if assoc_expand_once is turned on.