When I try to correct input for my crystal program (in a zsh terminal on my Mac), a ^? character is printed to the screen for each press of backspace. It's disorienting and does not delete any characters from the screen, but it technically functions just fine as I discovered playing around with this little testing snippet.
a = gets.as(String).chomp
puts a
a = gets # alright then^?^?^?^?^?
puts a # alright
What is going on here? How can I make my input behave as a user would expect, is there something special I can do with STDIN?