グリフ構造体


あなたがそのことを読んだと仮定しよう.あなたがそうしないならば、現在そうしてください.
Rune 不思議です.これにより、エンコーディングを使用するのを避けることができます.しかし、まだ問題があります.
"café" == "café"
さて、それは正しいですか?いいえ.真剣に.お試しください.
では、何が起こっているのでしょうか?
時間は、OLの信頼できるエスケープに戻るには.
"caf\u00C9" == "cafe\u0301"
明白な今?問題は、彼らが我々に同じように見える間、彼らはコンピュータに同じように見えないということです
だから何が起こっている?
Unicodeが作成されていたときには、互換性のあるオブジェクトを合理的に後方に保つことに大きな関心がありました.あなたが物事を採用したいならば、あなたは彼らを採用するのが簡単にしようとしなければなりません.意味を正しくするか.私は私自身の追加の考えを追加する必要がありますが、これはそのための場所ではありません.ヨーロッパの言語のためのエンコーディングé 歴史的に1文字ごとにコードポイントを割り当てます.したがって、初期の段階でユニコードは同じことをしました.しかしUnicodeコンソーシアムが世界の言語の信じられないほどの多様性について学んだので、彼らは問題を学びました:後方互換性はいくつかの本当にNA - VE VEの概念を導入します、そして、我々は実際に様々な他のものでベース文字を構成するシステムを持っていなければなりませんでした.私たちの場合、それはアクセント、またはdiacritics、またはあなたがそれらを呼び出すように感じるものは何でも.
参照U+00C9 == U+0065, U+0301 人間に.地獄、多くのコンピュータ・アプリケーションのためにさえ、彼らは同じです.しかし、どうやってコンピュータを見るのですか?結局、コンピュータは見えません.ええ.OpenCV しかし、私は、誰でも、それがここの解決でないということを知っていると思います.
Rune ファンタスティックな前例を設定します.ネットオリジナルのタイプが欠点を持っていることを明らかにしただけでなく、非常に類似した感じAPIの慣例を確立しました.…
私が以前に説明していた問題は、「拡張された書記素クラスタ」をその「既成の文字」と等価であると認識することです.この解決策は、私の意見では Glyph , あなたが得ることができるhere .
Glyph 非常に似たようなコンセプト Rune , しかしUTF - 16シーケンスの上でユニコードのスカラ値に並ぶ代わりに、それはUnicode graphemeクラスタの上で階層化します.大きなプロジェクトの多くとは異なり、Stringierの一部です. Glyph 半fossプロジェクトの一部です.グリフとグリフの2つのライブラリで構成されています.表.延長または固定 Glyph このモデルのため、非常に簡単です、全体の型、およびそのすべてのアルゴリズムがFOSS tables . 彼らはあなたも彼らに貢献するプログラムを知っている必要はありませんので、簡単です.
では、その例を再訪問しましょう Glyph 心で.
Glyph.Equals("café", "café");
わかりました、それは細くてダンディですが、これと同じです.
String.Equals("café", "café", StringComparison.InvariantCulture);
うーん.しかし、それだけで動作するEquals() . 別の例を考慮する.
"café"[3] == "café"[3]
カバーから知っている Rune それの前に、これはfalseです.しかし、何を使用するか Glyph -それから我々がした等価物?
"café".GetGlyphAt(3) == "café".GetGlyphAt(3)
そして実際にはtrue . きちんとした.
Glyph 主に、すでに何のものであるかの多くを統一して、単純化することになっています...NET CLR、しかし、すべての場所に散らばって、時々よく実装されません.また、あなたが働くことができる実際のタイプには、Indexersから列挙へのすべてがあります.それは非常に仕事の経験のように感じるためのものです Rune , それはもちろん、働くことの経験のように感じることになっている Char .
私は、誰でも同意することができると思います:あなたが既存の知識を再利用することができるならば、このクソは学ぶのがより簡単です.ほぼ同じAPIを再利用し続けるようにしましょう.しかし、異なったレベルの抽象化において、まったく異なった、ときどき曖昧に定義された概念を発明する代わりに.確かに、それは抽象化の塔です.しかし、それは理解された抽象化の塔でもあります.
と言われる. Glyph それでも、我々がそうでありたいところで、我々を完全に得ません.他にもLigatureのようなコンセプトがあります Glyph 単に処理しません.