Living Dangerously with PHP and UTF-8

Quick one – knocked up a list of “dangerous” functions and functionality in PHP, in relation to the use of UTF-8, available at These are for a “default” PHP setup without the mbstring overloading or PHP6 (where charset problems “magically vanish” ;)).

This follows on from (unfinished) stuff here on charsets (tending towards UTF-8), which should help explain some of this.

Should point out this is coming from the angle “you can’t rely on the mbstring extension being available”, which is often the case with shared hosts – how to you deal with i18n in such environments. The counter view is here.

Anyway – hopefully useful as a starting point for analysing PHP code bases when considering UTF-8 (with a little help from phpxref perhaps). If you want to change / add stuff, the wiki requires a login which you can get here