Bash – `less` not able to display special characters

bashlessmanterminalutf-8

I stumbled upon bad special characters in some manpages:

If your terminal is a "true" auto-margin terminal (it doesn▒<80><99>t allow the
last position on the screen to be updated without scrolling the screen)
consider using a version of your terminal▒<80><99>s termcap that has automatic
margins turned off. This will ensure an accurate and optimal update of
the screen in all circumstances. Most terminals nowadays have "magic"
margins (automatic margins plus usable last column). This is the VT100
style type and perfectly suited for screen. If all you▒<80><99>ve got is a […]

I have done some research. man uses $pager as its display tool and this is set to less in my environment. So apparently less is not able to display the man pages's special characters.

My terminal (putty) is set to Utf-8, and $LANG=en_US.UTF-8. What can be wrong?

Best Answer

See first if you have LESSCHARSET environment variable set.

echo $LESSCHARSET

If that is not utf-8 already, then set it:

export LESSCHARSET="utf-8"

See if that helps. You may also try a pager called most, it's available at least on Debian/Ubuntu package repositories.