Apache Commons Lang のドキュメントによるとStringUtils.isNumeric()
、文字列 '१२३' は数値です。
これはドキュメントの誤りである可能性があると考えたので、テストを実行してステートメントを検証しました。Apache Commons によると、数値であることがわかりました。
なぜこの文字列は数値なのですか? それらの文字は何を表していますか?
Apache Commons Lang のドキュメントによるとStringUtils.isNumeric()
、文字列 '१२३' は数値です。
これはドキュメントの誤りである可能性があると考えたので、テストを実行してステートメントを検証しました。Apache Commons によると、数値であることがわかりました。
なぜこの文字列は数値なのですか? それらの文字は何を表していますか?
特定の「文字」が持つ特性を知りたい場合 (かなりの数の特性があります) は、ソースに直接アクセスしてください: Unicode.org。彼らは、あなたが知りたいと思うほとんどすべてを示すことができる調査ツールを持っています.
特定のキャラクターのすべてのプロパティを表示する場合は、次の手順を試してください。
http://unicode.org/cldr/utility/character.jsp?a=१</a>
また:
「10 進数」として分類されたすべての文字 (つまり、0 から 9 までの数値) を表示するには、次のようにします。
http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[:Numeric_Type=Decimal:]
(550 コード ポイント -- 現在 / Unicode 9.0 以降)
「10 進数以外の数字」(分数、丸付きなど) として分類されたすべての文字を表示する場合は、次の手順を試してください。
http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[:Numeric_Type=Numeric:]
(836 コード ポイント -- 現在 / Unicode 9.0 以降)
「10 進数」として分類されたすべての文字 (つまり、0 ~ 9 の数値) を表示したいが、Unicode 6.0 (.NET が使用する) までの文字のみを表示したい場合は、次の手順を試してください。
http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[:Numeric_Type=Decimal:]%26[:Age=6.0:]
(420 コード ポイント -- そして変更すべきではありません)
「10 進数」として分類されたすべての文字 (つまり、0 ~ 9 の数値) を表示したいが、Unicode 6.0 (.NET が使用する) までのみを表示し、基本多言語プレーン/補助文字なし (つまり、コード ポイント 65535 / U+0xFFFF) を超えるものがない場合は、次のことを試してください。
http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[:Numeric_Type=Decimal:]%26[:Age=6.0:]%26[:bmp=Yes:]
( 350 コード ポイント - -そして変更すべきではありません)
注意: Unicode コンソーシアムは、ソフトウェアではなく、仕様を作成します。これは、仕様をできる限り正確に実装するかどうかは、各ソフトウェア ベンダーの責任であることを意味します。HTML、JavaScript、CSS、SQL などと同じように、プラットフォームや言語などによって違いがあります。たとえば、Microsoft の .NET Framework で、丸で囲まれたラテン文字A-Z
と a-z
コード ポイント 0x24B6 から 0x24E9 が適切に登録されないバグを発見しましたchar.IsLetter = true
(バグ レポートはこちら)。また、メソッドを呼び出すときなど、関連する機能で予期しない動作が発生しますTextInfo.ToTitleCase()
(バグレポートはこちら)。