1.絵文字消去
絵文字を消すには開始コード(\x1b)から終了コード(\x0f)を消去すれば簡単に対応できる。
-----
$str =~ s/\x1b\S+\x0f//g;
-----
とすればすっきり消えるのだがたまにいる文字も消してしまう可能性が有る
-----
$str =~ s/\x1b//g;
$str =~ s/\x0f//g;
-----
とすれば多少ゴミが残るもののいる文章までは消されないはずなんだけどね。
後は絵文字を使う人がとっても嫌いな方はこー言う使い方も面白いかもしれませんね
-----
$str =~ s/\x1b\S+\x0f/(私は禁止された絵文字を書きました。)/g;
-----
絵文字が『(私は禁止された絵文字を書きました。)』となります。(笑)
2.PCでも見る
絵文字は普通 \x1b$●▲\x0fって感じのフォーマットで●がグループで▲が絵文字のコードって感じになります。
連続した場合は\x1b$●▲▲▲\x0fってなり、ケータイで表示するにはそれでOKなのですが、PCでは化けます。
それを対応したIMGに置き換える方法を使います。(詳しいソースを書かないのは頭の体操ですね。)
\x1b$が来ると絵文字開始・・・
●はE or F or Gなのかチェックする。
そして▲を1つ1つチェックそれをIMGタグに置き換え
そして▲が無くなり\x0fが来ると絵文字が終了。
そこで\x1b$と●と\x0fを削除。
-----
while($str =~ /\x1b/)
{
$str =~ s/\x1b/ASDF/;
while($str =~ /ASDF\$(E|F|G)(.)/)
{
if($str =~ /ASDF\$[EFG]\x0f/)
{
$str =~ s/ASDF\$[EFG]\x0f//;
last;
}
$mname = "$1$2";
$str =~ s/ASDF\$(E|F|G)(.)/絵文字→$mname\nASDF\$$1/;
}
}
-----
上記のは参考資料の為たぶん動作しません、もちろん無保証です。