グリフ構造体
5819 ワード
あなたがそのことを読んだと仮定しよう.あなたがそうしないならば、現在そうしてください.
では、何が起こっているのでしょうか?
時間は、OLの信頼できるエスケープに戻るには.
だから何が起こっている?
Unicodeが作成されていたときには、互換性のあるオブジェクトを合理的に後方に保つことに大きな関心がありました.あなたが物事を採用したいならば、あなたは彼らを採用するのが簡単にしようとしなければなりません.意味を正しくするか.私は私自身の追加の考えを追加する必要がありますが、これはそのための場所ではありません.ヨーロッパの言語のためのエンコーディング
参照
私が以前に説明していた問題は、「拡張された書記素クラスタ」をその「既成の文字」と等価であると認識することです.この解決策は、私の意見では
では、その例を再訪問しましょう
私は、誰でも同意することができると思います:あなたが既存の知識を再利用することができるならば、このクソは学ぶのがより簡単です.ほぼ同じAPIを再利用し続けるようにしましょう.しかし、異なったレベルの抽象化において、まったく異なった、ときどき曖昧に定義された概念を発明する代わりに.確かに、それは抽象化の塔です.しかし、それは理解された抽象化の塔でもあります.
と言われる.
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
単に処理しません.Reference
この問題について(グリフ構造体), 我々は、より多くの情報をここで見つけました https://dev.to/entomy/glyph-struct-22nnテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol