I'm using the same compiler for both versions. The conversion functions are defined in the FPC RTL.
Isn't this strange?
Check to make sure the 2 functions are returning the same strings:
var
s : string;
begin
s := UTF8Encode(WideChar($00B6));
writeln(byte(s[1]), ' ', byte(s[2]));
s := AnsiToUTF8(#$B6);
writeln(byte(s[1]), ' ', byte(s[2]));
end.
You should get 194 ($C2) and 182 ($B6) for both.
I tested it here on Windows and OS X and everything checks out.