こんにちは、@todokrです。これは絵文字 / Emoji Advent Calendar 2016 3日目の記事です。 さっそくですがクイズです。以下のJavaScriptのコードの実行結果はどうなるでしょうか? (すぐお試しいただけるようgistにコードをアップしてみました) ... ... ... 結果はこちらです。 なんと!ママが入れ替わってしまいました! 「家族」の1文字に対してreplace したのに何故でしょうか? 「なんだこの文字は!?」に遭遇したらやることはただひとつ、そう16進ダンプでバイナリを見ることです。1 まずはプレーンな「家族」の絵文字から見てみましょう このようなテキストファイルを用意します。 odコマンドでダンプした結果が以下です。 エンコーディングはUTF-16なので2バイトずつで0xD83Dと0xDC6Aですね 先頭バイトの0xD83Dが上位サロゲート
![家族👨👩👦👦はreplaceされてしまうのか?あるいはZWJの話😂 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/cbc1f0f7d57c0fbd7dc87d81bc07542c36a83eff/height=288;version=1;width=512/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fqiita-fb-2887e7b4aad86fd8c25cea84846f2236.png)