タグ

unicodeに関するigrepのブックマーク (42)

  • UTF-8のバリデーションとモノイドと半群

    この記事はUTF-8のバリデーションとオートマトンの続きです。 前回はUTF-8のバリデーションが8状態のオートマトン (DFA) で表現できることを見ました。状態と遷移を擬似コードで書けば次のようになるでしょう: -- 8つの状態 data State = START | TAILx1 | TAILx2 | TAILx3 | A | B | C | D -- 入力バイトに応じて次の状態を返す。次の状態が該当しなかったら Nothing を返す next :: Word8 -> State -> Maybe State +----+----+-----+----+ | a0 | a1 | ... | aN | 8ビット整数列 +----+----+-----+----+ | | | v v v +----+----+-----+----+ | m0 | m1 | ... | mN | モノ

    UTF-8のバリデーションとモノイドと半群
  • あなたの知らない(かもしれない)文字コードの世界 TypeScript版😊👍🏿パ👨‍👩‍👦🇦🇿🏴󠁧󠁢󠁥󠁮󠁧󠁿

    こんにちは!アルダグラムのKANNAの開発お手伝いをさせて頂いているoubakiouです。 記事は株式会社アルダグラム Advent Calendar 2023 6日目の記事です。 この記事を読めば以下のTypeScript(JavaScript)のテストコードがなぜこけるのかが分かったような気持ちになります。また最後に「細かい理屈はいいからいけてる感じに動くlengthやtruncateがほしい!」という方向けの付録もついています。 it('surrogate pair', () => { // 2 expect('😊'.length).toEqual(1) }) it('variation selectors', () => { // 4 expect('👍🏿'.length).toEqual(1) }) it('combining character', () => { //

    あなたの知らない(かもしれない)文字コードの世界 TypeScript版😊👍🏿パ👨‍👩‍👦🇦🇿🏴󠁧󠁢󠁥󠁮󠁧󠁿
  • 誰でも簡単⁉️👀 絵文字ができるまで😃👍

    こんにちは!サイボウズ株式会社フロントエンドエンジニアの おぐえもん(@oguemon_com) です。 先日開催された社内イベントCybozu Frontend Day 2023にて私が発表した絵文字の仕様策定に関する紹介を、当時の時間的制約から泣く泣く割愛した内容を加えた上で文章の形にまとめました。 また、情報は全て2023年8月1日現在のものです。 はじめに 今や「ぴえん🥺」や「おじさん構文」などの様々な形で老若男女を問わず私たちの生活・文化に深く根ざしている絵文字。ところで、そんな絵文字たちにも生みの親がいることを意識したことがありますか? 例えばこちらの絵文字にも生みの親がいます。 🥱は、Jay Petersさんが2017年9月に提案しました。 Jay Petersさんの職業はニュース編集者。決してデザイン事務所やGAFAなどのエンジニア・デザイナーではありません。 このよう

    誰でも簡単⁉️👀 絵文字ができるまで😃👍
    igrep
    igrep 2023/08/09
    🙇なんかも結構日本独特だしねぇ "今の条件では高確率で拒否されるこれらがなぜEmojiとして存在しているのか ... 機器間の互換性を重視して、日本の携帯電話をはじめ当時あった絵文字をそのまま採用したから"
  • 中国人を悩ませるレアな名字の文字コード問題

    印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます 中国では、2023年8月1日に強制力のある国家標準規格「GB 18030-2022」(信息技術中文編碼字符集)が施行される。中国で「強制」という言葉が出ると「また締め付けが強化される」と反射的に考えてしまうかもしれないが、これは文字コードの標準規格を新たに導入するという話だ。珍しい名字などに使われ、既存の文字コードに未登録の漢字に対応しようというものになる。 中国の面積は日の国土の約25倍で、約14億人の人口を擁している。一部の地域限定で使われている漢字や、少数民族の固有名詞でのみ用いられている漢字もある。文字コードに含まれない漢字を使っている人は約6000万人もいるそうだ。例えば、山東省青島市郊外にシュイユー村という地元ではまあまあ

    中国人を悩ませるレアな名字の文字コード問題
  • 正規表現を豊かにする ES2024 RegExp v (unicodeSets) フラグ

    2023/05/17 変更】 2023年5月の TC39 会議で Stage 4 になったため、タイトルを変更 HTML Standard の pattern 属性に取り込まれたので修正 ES2024 RegExp v (unicodeSets) フラグ ES2024 に RegExp v (unicodeSets) フラグというものがあります。これは既存の u (unicode) フラグを改善して置き換え、機能追加することを目的としています。 詳しい内容については V8 や 2ality による解説記事が詳しいです。ここではその概要をピックアップして述べたいと思います。 複数のコードポイントからなる絵文字の対応(Unicode Properties of Strings) ES2015 に u (unicode) フラグが導入され、コードポイント単位で正規表現を扱えるようになりました。

    正規表現を豊かにする ES2024 RegExp v (unicodeSets) フラグ
  • 目に見えない文字を悪用してサイトを好き放題荒らされた話 - Qiita

    ある日のこと 僕の運営している『ブラウザで遊べる絵チャット(令和最新版)』に、このような投稿がされてしまいました。 正直こんな荒らしは毎日のようにあるのですが、普段であればすぐに他のユーザーによって通報され、対処されます。 しかし、このユーザーは、何故か他ユーザーに通報されることなく、荒らし続けることができていました。 スクショをよく見ていただきたいのですが、通常であれば、「善良ユーザーA」のように発言の横にユーザーが名が表示され、そのユーザー名をクリックすることでプロフィールを表示することができるようになっています。 しかし、荒らしているユーザーには、なんと名前がないのです。 名前がないと、ユーザー名を押下することができず、プロフィールも表示できません。 違反行為の通報は、プロフィールから行うようになっているため、このユーザーは他ユーザーから通報されることなく、好きなだけおちんちん祭りを

    目に見えない文字を悪用してサイトを好き放題荒らされた話 - Qiita
    igrep
    igrep 2022/12/07
    やっぱこういうのはallowlistじゃないとダメね...
  • ECMAScript proposal: RegExp flag `/v` makes character classes and character class escapes more powerful

    ECMAScript proposal: RegExp flag /v makes character classes and character class escapes more powerful In this blog post, we look at the ECMAScript proposal “RegExp v flag with set notation + properties of strings” by Markus Scherer and Mathias Bynens. The new flag /v  # The proposed new regular expression flag /v (.unicodeSets) enables three features: Support for multi-code-point graphemes (such a

  • ハイフンに似ている横棒を全て統一するᅳㅡ˗𐆑–᭸‒-─−▬𐄐—━‐‑ー﹣―ー﹘-⁃➖⁻! - Qiita

    はじめに これらの横棒、コンピュータにとっては全て違うのですが 見分けがつくでしょうか? -˗ᅳ᭸‐‑‒–—―⁃⁻−▬─━➖ーㅡ﹘﹣-ー𐄐𐆑 郵便番号、住所、電話番号など、横棒が使われているデータを扱うとき、 人が入力したデータや購入したデータであると、同じ記号が使われていないことはよくあることです。 090-1234-5678 090᭸1234᭸5678 090‑1234‑5678 090−1234−5678 これらの電話番号の文字列も phone_no_list = ['090-1234-5678', '090᭸1234᭸5678', '090‑1234‑5678', '090−1234−5678'] # 文字をUnicodeコードポイントに変換 for n in phone_no_list: # 文字列の4番目の横棒の文字コードを見てみる print(n[3], ord(n[3]

    ハイフンに似ている横棒を全て統一するᅳㅡ˗𐆑–᭸‒-─−▬𐄐—━‐‑ー﹣―ー﹘-⁃➖⁻! - Qiita
  • GitHub - composewell/unicode-data: Access unicode character database

  • 「ASCIIをUTF-8にして」それが『できない』ことを理解してもらえなかった話 - Qiita

    物語の始まり 事の発端は納品後。 先方からメッセージが届きました。 クライアント様「このファイルの文字コードがShift_JISになっておりますので、UTF-8で再納品をお願いいたします。」 拙者(あれ…UTF-8にしてたと思うんだけどな) 拙者「確認いたします。」 文字コードを確認する 案件はいわゆる更新案件で、今回の納品時に言われていたのは、「文字コードがUTF-8ではないものは変換して納品してくれ」ということ。 そして、ご指摘いただいたのは、今回の更新案件で中身はいじらなかったJavaScriptファイル。 来ならば納品するファイルではないのですが、文字コード変換という要件があったため、納品ファイルとして加えられたものでした。 一括で文字コードを変えたので作業漏れかなぁと思っていました。 ファイルの中身は記事用にかなり適当につくったものですが、まあだいたいこんな感じです。

    「ASCIIをUTF-8にして」それが『できない』ことを理解してもらえなかった話 - Qiita
    igrep
    igrep 2021/04/07
    できない、というか仕様上すでにASCIIはUTF-8なのでそこはもやもや。ベン図でも描いてあげてShift-JISとUTF-8とASCIIの関係でも説明してあげてもダメだったかな...
  • 波ダッシュ、全角チルダ問題まとめ - Qiita

    そもそも、波ダッシュと、全角チルダって? 波ダッシュ 〜 0x8160(Shift_JIS) 0x301C(UTF-8) WAVE DASH(ユニコードポイント : U+301C) 日語の文字 範囲を表す : 大阪 〜 東京 など 省略記号 : 〜 からの 全角チルダ ~ Shift_JIS には無い 0xFF5E(UTF-8) FULLWIDTH TILDE(ユニコードポイント : U+FF5E) いろんな意味がある文字 アルファベットの上につけて、鼻音を表す : ñ 数学記号 (ほぼ等しいの意味) ホームディレクトリを表す記号 : ~/download Unicode 側での波ダッシュ割り当てミス Shift_JISの波ダッシュ を Unicode に割り当てるときに、 波ダッシュの形を間違えて、"下がって上がる" ように表記してしまった ※ unicode 8.0 で修正されました

    波ダッシュ、全角チルダ問題まとめ - Qiita
  • 竈門禰豆子の禰の字について - Ryusei’s Notes (a.k.a. M59のブログ)

    アニメ公式での竈門禰豆子の表記。禰を表示するのに中国語繁体字の字形を使っている。 どうやら、竈門禰豆子の禰の字について、しめすへんは正式には「ネ」の形という指定が存在しているようで、公式サイトでもわざわざフォントを変えて1、禰のしめすへんを「ネ」に変えています。中国語のフォントでは、しめすへんは常用漢字かどうかに関わらず、いつでも「ネ」の形をしているからですね。2 日フォント中国フォント 禰 この、フォントを変える手法での字形変更は昔から行われていますが、中国語のフォントを使うわけなので、日語のフォントのしめすへんとは形が少し違う問題があります。 他の方法としては、異体字セレクタと呼ばれる仕組みを使うと禰󠄁(しめすへんが「示」)と禰󠄀(しめすへんが「ネ」)は区別して出せます。この方法で変えられる字形は、日フォントの中で用意されている、他の字になじんだ字形を使うことがで

    竈門禰豆子の禰の字について - Ryusei’s Notes (a.k.a. M59のブログ)
  • 文字コード再入門 ─ Unicodeでのサロゲートペア、結合文字、正規化、書記素クラスタを理解しよう!|ハイクラス転職・求人情報サイト AMBI(アンビ)

    文字コード再入門 ─ Unicodeでのサロゲートペア、結合文字、正規化、書記素クラスタを理解しよう! 文字コードには、どのような種類があり、それぞれどのような意味を持つのか、といった、文字コードの基的な概念、従来の文字コードを紹介し、現在のUnicodeの構成を概説し、プログラミングにおいて注意すべき箇所をいくつか取り上げます。 ソフトウェア開発に携わる方の多くは、何らかの形で文字コードに触れることがあるでしょう。文字や記号をコンピュータ上でデータとして扱うには、文字コードの知識が必要不可欠です。 稿では、書籍『プログラマのための文字コード技術入門』の著者である矢野啓介さんが、知っておきたい基礎知識を分かりやすく解説します。 文字コードとは? Unicode以前の文字コード Unicodeとその主な符号化形式 UTF-16 UTF-32 UTF-8 Webで文字コードを指定する仕組み

    文字コード再入門 ─ Unicodeでのサロゲートペア、結合文字、正規化、書記素クラスタを理解しよう!|ハイクラス転職・求人情報サイト AMBI(アンビ)
    igrep
    igrep 2020/04/29
    Unicode沼のすばらしい概要だ
  • Write out Unicode in Octal – Lubutu

    This is just a brief note about something that I came to realise recently. I've been working a lot with UTF-8 byte streams, Unicode characters, and all that, and I've come to realise that writing them out in hexadecimal is completely wrong. It's a form of obfuscation. I'll walk through an example, which should explain very quickly why I feel we should be using octal. Take the Unicode codepoint U+2

  • 絵文字を支える技術の紹介 - Qiita

    絵文字を扱う上で知っておくと良いかもしれないことをまとめてみました。 Ruiさんの記事を見て、「EmojiはSurrogate Pair以外にも、色々とおもしろい技術があるんですよ〜」思って書いてみました。 なお、書いた人はAndroidの人間なので、特に表記していない場合は主にAndroid上での動作のことを書いてます。 またQiita初めてなので読みにくい部分等がありましてもご容赦ください。 サロゲートペア(Surrogate Pairs) このエントリーを書くきっかけにもなったサロゲートペア。なぜこれが導入されたかの経緯は、Ruiさんのブログエントリーに譲るとして、技術的な解説をします。 サロゲートペアは、U+0000..U+FFFFに収まりきらなかった範囲のUnicodeコードポイント(U+10000..U+10FFFF)を、なんとか16bitでエンコードしようとして導入されました

    絵文字を支える技術の紹介 - Qiita
    igrep
    igrep 2019/10/16
    すげぇ。ここだけでもどれだけ深い沼なんだ...
  • 新元号はこれに決定 - Qiita

    思わせぶりなタイトルですみません。 新元号はリークしたら変更されるから予想出来ないとか、みなさん色々言われていますが、新しい元号はもう昨年にはとっくに決まっていたのです。 よろしいですか?新しい元号は「㋿」です。 ・・・これが豆腐にしか見えないみなさんも、いずれ私の言うことが正しかったと分かるはずです。 それでは、せっかくのQiitaですので、新しい元号を出力してクリップボードに入れるプログラムを紹介します。 WindowsでPowershellを開く、もしくはコマンドプロンプトを開いて powershell を実行し、下記のスクリプトを実行しましょう。

    新元号はこれに決定 - Qiita
    igrep
    igrep 2019/03/30
    putStrLn "新元号は「\x32ff」。"
  • Unicode-symbols - HaskellWiki

    Overview An overview of the packages that provide Unicode symbols. Naming: A package X-unicode-symbols defines new symbols for functions and operators from the package X. All symbols are documented with their actual definition and information regarding their Unicode code point. They should be completely interchangeable with their definitions. Alternatives for existing operators have the same fixit

  • ぼくたちのかんがえたさいきょうのi18n国家

    記事は下記のtweetから始まるスレッドに触発され、@qnighyや@na4zagin3からアイディアを拝借して書いた。 i18n力が最強の国は国内に複数の言語があり、そのうちいくつかは他国でも使われている言語の方言で、1バイト文字での代替表記が困難で、歴史的にISO-2022ベースの文字コードとUnicodeと独自エンコーディングが混在していて、フリガナなどの特殊な組版規則があり、右書き左書き縦書きを併用し、 — Masaki Hara (@qnighy) 2018年8月6日 皆さんのおかげで最強のi18n国家が建設されつつある。一瞬で滅びそう — Masaki Hara (@qnighy) 2018年8月6日 長い前置き ソフトウェアのi18nは難しい。自文化では当たり前と思っていてハードコードしてしまった仮定が崩れて、大幅な再設計を余儀なくされるからだ。気づいて再設計できればまだ良

    ぼくたちのかんがえたさいきょうのi18n国家
    igrep
    igrep 2018/08/07
    うげげげ...
  • GitHub - mattn/go-runewidth: wcwidth for golang

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - mattn/go-runewidth: wcwidth for golang
    igrep
    igrep 2018/05/23
    実際のところ厳密な長さはフォントに依存するんじゃなかったっけ?その辺どうしてるんだろう?
  • ゼロ幅文字にエンコードした隠し情報で、文書をリークしたメンバーを特定 | 秋元@サイボウズラボ・プログラマー・ブログ

    とある会員制掲示板からの文書の流出に困った運営者が、ユニコードの見えない文字「ゼロ幅文字(Zero-Width characters)」を使って流出させたユーザーを特定した、という話が出ていました。 数年前の話、Tom さんが所属していた競技ビデオゲームのチームでは、ログインが必要なプライベートの掲示板を使って連絡していました。その掲示板に書かれた秘密情報や戦術に関する重大アナウンスなどがしばしば掲示板外のウェブにコピペされ、チームにとって大きな問題となっていたそうです。 外部ユーザーの攻撃で中身が漏れたというよりは、メンバーの誰かがコピーしているのでは、と考えた Tom さんは、当時気になっていたユニコードのゼロ幅文字を使ったトリックを仕掛けたそうです。 ユーザーを特定する情報を、見えない文字に変換して埋め込む ログイン中のログインユーザーのユーザーIDを、一定のルールによってゼロ幅文字

    ゼロ幅文字にエンコードした隠し情報で、文書をリークしたメンバーを特定 | 秋元@サイボウズラボ・プログラマー・ブログ