Well, for something like an IRC client it is up for the user to set the correct one.
I used to have an IRC config that was different for each server and sometimes channel, then displayed that in one shared encoding with other chat apos, then converted that on the fly with screen to match encoding of other apps.
Now I just had to make sure to convert encodings and line endings of all config files, any text file, or even source code and scripts...
Nowadays you just paste emojis in code and it's there, it works anyone, including the user. Huge change.
Discord doesn't have these kind of safeguards.