I've been in and out of these forums for years, and have found all answers with ease. The one exception was getting help with international characters - which turns out to be a hard subject to find anywhere on the net. I just wanted to leave this quick note so that hopefully the search engines will pick it up for other people like me.
I was playing with code and switching between seeing question marks, strange characters, or having PHP cut off my result set from MySQL completely. The question marks would appear if your server/PHP, MySQL, or the browser would disagree on exactly which character set would appear. So to solve that - just make sure your server and HTML charset are UTF-8. Also make sure that your tables are utf8_unicode.
Then I realized if I used a substr on a number of characters, it would just make PHP die right there. It would stop processing my results from MySQL but still spit out everything up til then. This would only happen though if I used json_encode to give me the text after. This was solved by using the mb_ functions which I feel are pretty much unknown. mb_substr, mb_strlen, and mb_convert_encoding were among the functions I used. The last parameter which specifies encoding is optional, but I highly highly recommend putting in UTF-8 there.
Also, I'm not sure if this was a quirk from the framework I'm using but, adding in this ridiculous line also helped with one of my glitches:
$text = mb_convert_encoding($text , "UTF-8", "UTF-8");
I hope this article helps someone at some point.
-D