タグ

unicodeに関するama-chのブックマーク (4)

  • JavaScript における文字コードと「文字数」の数え方 | blog.jxck.io

    Intro textarea などに入力された文字数を、 JS で数えたい場合がある。 ここで .length を数えるだけではダメな理由は、文字コードや JS の内部表現の話を理解する必要がある。 多言語や絵文字対応なども踏まえた上で、どう処理するべきなのか。 それ自体は枯れた話題ではあるが、近年 ECMAScript に追加された機能などを交えて解説する。 なお、文字コードの仕組みを詳解すること自体が目的では無いため、 BOM, UCS-2, Endian, 歴史的経緯など、この手の話題につき物な話の一部は省くこととする。 1 文字とは何か Unicode は全ての文字に ID を振ることを目的としている。 例えば 😭 (loudly crying face) なら 0x1F62D だ。 1 つの文字に 1 つの ID が割り当てられているのだから、文字の数を数える場合は、この ID

    JavaScript における文字コードと「文字数」の数え方 | blog.jxck.io
    ama-ch
    ama-ch 2017/03/05
    めっちゃ分かりやすい
  • Hacking with Unicode

    This presentation explores common mistakes made by programmers when dealing with Unicode support and character encodings on the Web. For each mistake, I explain how to fix/prevent it, but also how it could possibly be exploited. Event: HackPra — the hacking lecture at the Ruhr University in Bochum Video: https://www.youtube.com/watch?v=qFfjJ8pOrWY&hd=1 (use these slides though, not the ones in the

    Hacking with Unicode
  • 「ユニコードは犯罪だからやめてください」の衝撃 - yanok.net

    新年早々、大笑いしてしまったこと。 下らないといえば下らないので書くまでもないかと思ったのですが、後で忘れた頃に読み返すと面白いかもしれないので書きとめておくことにします。 何があったのかは下記のページに詳しく書かれてあります。こちらを読んでいただければ、ぶっちゃけそれ以上のことはないです。 「LINEウイルス」の正体とは―LINE内で流行する「ウイルス攻撃」の現状について 簡単にまとめていうと、 LINE上で「ウイルス」なるものを送りつけることができるという噂があって、実際にそれを送りつけられるとLINEのアプリが誤動作(重くなる)らしい 実際のところ、ここで「ウイルス」と呼ばれているものはある特定の文字列である (プログラムではない。であるからしてウイルスでもない) 特定の文字列を受け取ると動作が極端に重くなる不具合のあるアプリがある、というのが真相らしい 問題を引き起こす文字列は、U

  • JavaScript Stringでサロゲートペアを扱う - teppeis blog

    JavaScriptで強力なUnicodeを扱う方法について書きます!(嘘) 先月末に発売されたWEB+DB PRESS Vol.78で「フロントエンドの国際化」の記事を書いたのは前回書いた通り。 WEB+DB PRESS Vol.78に「フロントエンドの国際化」について書いた! - teppeis blog 記事内で、JSの文字列は基UTF-16なのでサロゲートペアがうまく扱えないっていう問題は書いたけど、じゃあどうすればいいの?っていうのは載せられなかったので書く。 文字数のカウント 「𠮷(U+20BB7、つちよしだ)」や「𩸽(U+29E3D、ほっけ)」はUTF-16ではサロゲートペアで表現するのでlengthが見た目とズレる。 console.log("𠮷野家で𩸽".length); // 7 これを「5文字」とカウントしたいという話。 正規表現を使う方法 たぶん実装が一番

    JavaScript Stringでサロゲートペアを扱う - teppeis blog
  • 1