I am using a custom bash prompt with this command that was an answer to this question: It looks like this:
PS1=$'\e[1;33m\\t \e[36m\u\e[34m@\e[36m\h\e[;1m: \e[34m\w\n \[\b\e[;1;31m✘\] ${?/#0/\[\b\b\e[32m✓ \]}${?/#[1-9]*/ }\[\b→\e[;1m\] \$: \[\e[m\]'
With a successful command (exit code = 0) it looks like this:

With an unsuccessful command (exit code != 0) it looks like this:

As you can see the red arrow is cut off, which is not really a problem but still annoying. No matter which Monospace font I'm using, the result is always a cutoff arrow.
My initial prompt command looked something like this:
set_PS1()
{
local Exit_Code="$?"
local Reset="\\[$(tput sgr0 )\\]"
local Bold="\\[$(tput bold )\\]"
local Red="\\[$(tput setaf 1 )\\]"
local Green="\\[$(tput setaf 2 )\\]"
local Yellow="\\[$(tput setaf 3 )\\]"
local Blue="\\[$(tput setaf 4 )\\]"
local MagentaBG="\\[$(tput setab 5 )\\]"
local Cyan="\\[$(tput setaf 6 )\\]"
local Whoami='\u'
local Where='\w'
local Hostname='\h'
local Time='\D{%H:%M:%S}'
# Emoji are multi-byte, but shells think 1 byte = 1 character
# We add a 1-character space, then enable color-code mode to ignore
# the upcoming emoji, then backspace to draw the emoji on top of the space.
local emoji_start=$' \\[\b'
local emoji_end=$'\\]'
if (($Exit_Code == 0 )); then
local exit_code_prompt="$Green$emoji_start"$'\xE2\x9C\x93'"$emoji_end $emoji_start"$'\xE2\x86\x92'"$emoji_end" # Green checkmark symbol
else
local exit_code_prompt="$Red$emoji_start"$'\xE2\x9C\x98'"$emoji_end $Exit_Code $emoji_start"$'\xE2\x86\x92'"$emoji_end" # Red cross mark symbol and exit code
fi
local Line_1="$Bold$Yellow$Time $Cyan$Whoami$Blue@$Cyan$Hostname$Reset$Bold":" $Blue$Where$Reset"
local Line_2="$Bold$exit_code_prompt $Reset$Bold \\$: $Reset"
#local Line_2="$Bold \$: $Reset"
PS1="$Line_1\\n$Line_2"
}
We need to expand exit_code_prompt BEFORE PS1 prompt string expansion (see shopt promptvars in man bash)
so we need to move it to PROMPT_COMMAND which runs earlier.
PROMPT_COMMAND=set_PS1
with this setup the arrow is shown normally but it doesn't show when I'm inside a loaded python venv which is a no-go. Therefore I'm using the short version now which has the cutoff arrow...
UPDATE:
When using the DejaVu Sans Mono font the arrow is not cut off. In fact the amount that is cut off changes with each different used font, some ahve more some have less and DejaVu Sans Mono seems to have no cutoff as can be seen here:
