update_option method with support of utf8

Chances is are that the content-type/charset header is not being sent, and that you end up reading the utf8 chars as if they were latin-1.

Also, note that serialize()/unserialize() are not multibyte character-safe. For a subset of characters, the string’s length as returned by serialize() will occasionally differ from the expected length as it would be returned by mb_strlen(). This leads to all sorts of hard to debug unserialize problems which, since around WP 2.8, WP tries to discard in order to avoid crashing sites.