When running the following code
do line <- getLine
   putStrLn line
or,
getLine >>= putStrLn
And, after
 getLine >>= putStrLn
entering
µ
one encounters this output:
⠀
Now, I already tried chcp 65001 beforehand, which doesn't work, and the encoding of stdin is utf8.
An examination without putStrLn shows:
 getLine
µ
'\NIL'
My environment:
Windows 10 Version 10.0.17134 Build 17134
Lenovo ideapad 510-15IKB
BIOS Version LENOVO 3JCN30WW
GHCi v 8.2.2
How can this be solved?
EDIT: Specifically, the following sequence of actions causes this:
- Open 
cmd - Type 
chcp 65001 - Type 
ghci - Type 
getLine >>= putStrLn - Type 
µ 
However, the following does not:
- Search for 
ghci - Open 
ghci.exeat%PROGRAMS%\Haskell Platform\8.2.2\bin - Repeat 4-5.
 
NOTE: %PROGRAMS% is not a real environment variable.
EDIT: As requested, the output of GHC.IO.Encoding.getLocaleEncoding:
UTF-8
Also, the output of System.IO.hGetEncoding stdin:
Just UTF-8
(when using chcp 65001)
EDIT: The character is U+00B5. I am using a German keyboard, system locale Germany, language setting English, Keyboard language ENG with German layout.