preg_replaceでutf8文字列からコントロール文字を削除する。

Unicode文字プロパティなるものを使うと、コントロール文字は「\p{Cc}」と表記できる。

最初、

$ret = preg_replace('@\p{Cc}@', '', $utf8string);

とやっていたのだけど、どうもうまく動いていない。

結論、

$ret = preg_replace('@\p{Cc}@u', '', $utf8string);

PHP: Unicode 文字プロパティ - Manual に「PHP 4.4.0 および 5.1.0 以降、UTF-8 モード を設定した場合に」と書いてあったのを見逃してた。。。