Generally speaking, the problem is that a variety of applications have to work together: Apache, PHP, mySQL, MODx, phpMyAdmin, 3rd-party files (snippets etc.). You’d even have to take into account the user’s browser + WYSIWYG editors (complete applications in their own right).
A lot of these options are controlled by the hosting company: e.g. the default charset defined by Apache is still by default ISO-8859-1 on most Western European systems.
On some configurations, you can override those values, on others you can’t.
A string entered into the modx manager passes a lot of different "layers" till it’s stored on the server. Browser > WYSIWYG > PHP/MODx > mySQL. Often you got JSON/JS inbetween as well. If only one of those things don’t work like they’re supposed to, you end up with garbage. Hooray for technology!
But I’m afraid all this rambling isn’t helping mmjaeger much with this specific Ditto problem right now...