サロゲートのブラウザでの表示

unicodeでの表記

U+1F1E6のコードの場合、
&#x + U+1F604(コードの赤字のところのみ)

出力結果:😄

UFT-16の場合

文字コードからバイナリデータへの変換規則は下記
参考:サロゲートペア入門
        var x;
        var s;
        var a;  //上位サロゲート
        var b;  //下位サロゲート
        x = 0x20B9F;  //文字コードをセット
        x -= 0x10000;
        a = Math.floor(x / 0x400);
        //Math.floor()で整数値に変換
        a += 0xD800;
        b = x % 0x400;
        b += 0xDC00;
        s = String.fromCharCode(a,b);
        alert(s);
      

javascriptでサロゲート文字を取得したときの情報

😄を文字列で取得し(javascript上、2文字になる)、それぞれを.charCodeAtで取得した場合

high surrogate

str.charCodeAt(0);

55357

low surrogate

str.charCodeAt(1);

56836

unicodeの0x以下5文字を10進法にしたもので表示される。

おまけ:国旗絵文字の範囲検証