問題タブ [unicode-normalization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unicode - 複数のコードポイントが同じ文字の場合、中国語のユニコード文字列を比較しますか?
中国語の文字を扱う Java コードを書いているところ、予期しない結果が得られました。等しいはずの文字列が等しくありませんでした。これは問題のある文字の 1 つで、「6」を意味します (ピンイン: liù): 六. この文字は、次の 2 つのコード ポイントのいずれかで表すことができます。
ブロック内の F9D1: CJK Compatibility Ideographs
ブロック
内の 516D: CJK Unified Ideographs
ウィキペディアにはこれらの文字範囲に関するページがあり、互換性表意文字に関する短いセクションではいくつかの重複について言及されていますが、リストではこの特定の文字が省略されています。
だから私は疑問に思っています:
- 重複するユニコード文字のリストがどこかにあるので、文字列を比較する前に変換できますか?
- CJK 文字を扱う場合、これは正常なことですか? それとも何か間違ったことをしたのでしょうか?
vb.net - UTF8 Unicodeの照合で同じ文字としてカウントされる文字は何ですか?そして、それらをマージするためにどのVB.net関数を使用できますか?
また、これらすべての異なる文字を最も標準的な形式にマップするvb.net関数とは何ですか。
たとえば、tolowerはAとaを同じ文字にマップしますか?
これらのキャラクターにも同じ機能が必要です
ドイツ人
ß===sÜ===uΧιοσ==Χίος
それ以外の場合は、IDがすでに存在するというmysqlの苦情を挿入するときに、Χιοσを挿入することがあります。
そこで、これらすべての奇妙な文字をより安定した文字にマップする一意のIDを作成したいと思います。
unicode - フリータイプで結合されたユニコード文字をレンダリングする方法は?
ドキュメントでこれに関する情報を見つけることができないようです.常に使用される関数は FT_Get_Char_Index(ftFace, i); であり、1つのユニコードコードポイントしか取りません. しかし、結合された文字、つまり複数のコード ポイントを使用する文字についてはどうでしょうか?
これらの文字の一部は、単純に Unicode で正規化して別の (単一の) コード ポイントとして表すことができることは理解していますが、できない文字もありますよね? それらにどのように対処しますか?
私は汎用のテキスト編集ソフトウェアを作成しており、すべての Unicode をサポートしたいと考えています。しかし、マルチコードポイント文字のこの問題は非常に小さいため、問題に値しないのではないでしょうか? そのような文字は、いくつかの主要なアジア言語でかなり一般的ではありませんか?
freetype で適切に実行できない場合、どうすればよいですか?
javascript - JS でのテキストの正規化
Javascriptで文字列を通常の形式Cに変換する方法はありますか? node.js のunormについては知っていますが、ブラウザ内 JS に興味があるので、標準のブラウザ API で十分です。
gwt - GWT での Unicode 正規化
重複の可能性:
GWT では、éàçè… を同等の「eace」に置き換えます
gwt でユニコードの正規化操作を行うために使用できるライブラリはありますか? (たとえば、ラテン語の O がキリル文字の O と等しいことを文脈的に保証するため)
java - 文字列内の大文字のみの発音区別符号を削除する方法
文字列の大文字から発音区別符号を削除する必要があります。例:ÉlectroniqueCaméras=>ElectroniqueCaméras(Éのみが変更され、Camérasのéはそのまま残ります)
次の方法を使用しています。この方法では、大文字から発音区別符号のみが削除されますが、再構築された文字列は次のようになります-Electronique Came?ras(éは失われます)。文字列を正しく再構築するにはどうすればよいですか?
ありがとう
objective-c - What is the form of unicode representation called?
I've been going around in circles on this problem where the JSON UTF-8 strings returned from a server contain unicode pairs like this:
\u00c3\u00bc
which is being rendered as two individual characters. However, It should be rendered as a single character. According to a table I found at this link, here are some more examples:
(Every case where I see this in my data would convert to an appropriate single character.)
Many of these apparently are 'aliases' of singlet forms like '\uxxxx', but I receive them this way as doublets. The raw data bytes show that this is actually how it is transmitted from the server.
(Once I have received them in UTF-8, there is no reason for me to keep them that way in local representation in memory.)
I don't know what to call this, so I'm having difficulty finding much information on it and I'm not able to communicate clearly on the subject. I would like to know why it's used and where I can find code that will convert it to something that my UIWebView can render correctly, but knowing what it's called is the point of my question.
My question then is what is this doublet or paired form called?
(If it's helpful, I am working in Objective-C and CocoaTouch.)
c# - コンテキストに応じて string.Normalize が一貫していないのはなぜですか?
次のコードがあります。
このコードは、64 ビット Windows 7 の Visual Studio 2010、.net4 でビルドします。
単体テスト プロジェクト (プラットフォーム: 任意の CPU) で 2 つのコンテキストで実行し、次の内容を確認しますchars
。
- Visual Studio 単体テスト: chars には
{ 231 }
. - ReSharper : chars には
{ 231 }
. - NCrunch : chars には が含まれます
{ 99, 807 }
。
msdnのドキュメント では、さまざまな動作を示す情報を見つけることができませんでした。
では、なぜ私は異なる振る舞いをするのでしょうか? 私にとっては、NCrunch の動作は予想どおりですが、他の人にも同じことが予想されます。
編集: .Net 3.5に戻しましたが、まだ同じ問題があります。
.net - レーベンシュタイン距離と特殊文字
ここでSteve Hanovによって説明されているように、トライ ツリーを使用してレーベンシュタイン距離アルゴリズムを実装しました。ただし、特殊文字の処理に問題があります。たとえば、Grossmann と Grossmann の間の距離を計算する場合、ß と ss は等しいと見なされるため、距離をゼロにする必要があります。
これらの特殊なケースをサポートするための最善の解決策 (もしあれば) は何でしょうか。
私の最初の考えは、距離を計算する前にすべての文字列を正規化することでした。Großmann -> Grossman、österreich -> oesterreich では ... しかし、.NET にはそのような機能がないように見えますか?
javascript - Unicode 文字の比較時に Javascript 文字列の比較が失敗する
JavaScript で同じ 2 つの文字列を比較したいのですが、等価演算子==
が false を返します。1 つの文字列に特殊文字が含まれています (たとえば、デンマーク語å
)。
JavaScript コード:
私にとってうまくいったのは、 slevithan が指摘したようにUnicodeの正規化です。
元の jsfiddle をフォークして、slevithan によって提案された正規化ライブラリを使用してバージョンを作成しました。リンク: http://jsfiddle.net/GWZ8j/1/ .