json_encode()で「Malformed UTF-8 characters」となった話ですが、根本的には別のお話しです…。(初歩的ミスが原因)
が、もしかしたら同じ目に遭うヒトもいるかもしれないので、一助となればと思い、投稿します。

あらすじ
・ある配列をjson_encode()に渡した。
・falseが返ってきた。
・「Malformed UTF-8 characters」というエラー。
・配列内に「〜」という文字列があるのを発見。またコヤツの仕業か!と疑う
・さんざんググったが、原因わからず(´;ω;`)
・配列の要素を一つ一つ削除していって、エラー原因を突き止め…
・結論、「〜」は濡れ衣。m(_ _)m
・原因は、全角文字列に対してsubstr()を使用したため。
・文字の途中で切れた?のであれば「Malformed UTF-8 characters」となるのはマットウ。
・またしてもPEBCAK!

うーむ、あらすじとして書いたけど、これがすべてだな(^o^;)
というわけでおしまい。
こんなことで数時間も無駄にした…orz