問題タブ [astral-plane]

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.

0 投票する
1 に答える
1185 参照

c# - C#で4バイト文字はどのように表現されますか

C#で4バイト文字はどのように表現されますか? 1文字ですか、それとも2文字セットですか?

0 投票する
2 に答える
688 参照

unicode - Mathematicaへの入力として非BMPユニコード(4文字以上の16進数)を入力する方法

問題の説明:"\:nnnn" Unicode入力の構文として Mathematicaを使用 します。たとえば、入る "\:6c34"と、"水"(中国語で「水」)が得られます。しかし、もし人が入りたいと思ったらどうなるでしょう"\:1f618"(キスを投げる顔)。私がこれを試したとき、私は得ました"ὡ8"、ではありません"a face throwing a kiss"。だから、Mathematicaは"\:1f61"私が入る前に評価し"8"ます。

質問: この評価を遅らせるにはどうすればよいですか、または一般的にユニコード入力を入力するにはどうすればよいですか(4文字を超える16進数の場合)。

ソフトウェアとハ​​ードウェアのプラットフォーム: 私はIntelMacでMathematica8を実行しています。MathematicaのコマンドラインバージョンとMathematicaノートブックの両方を試しましたが、同じように動作します。

ありがとうございました。


考察: Unicodeは拡張可能な標準であり、成長する可能性があります(そして、成長する可能性があります:))。この標準を実装するソフトウェアシステムは、有効で有用であるために、この標準のサブセットのみを実装できます(8ビット、16ビット、または32ビットエンコーディング)。1つは、特定のソフトウェアパッケージのユーザーとして、ソフトウェアがUnicodeをサポートしていると言ったら、Unicodeのユニバーサルセットをサポートしていると想定してはなりません。

0 投票する
4 に答える
4315 参照

c# - 文字クラスに関して、どのバージョンの Unicode が、どの .NET プラットフォームで、どのバージョンの Windows でサポートされていますか?

更新された質問¹

文字クラス、比較、並べ替え、正規化、および照合に関して、どの .NET プラットフォームでどの Unicode バージョンがサポートされていますか?

元の質問

.NET が Unicode バージョン 3.0 をサポートしていること、および内部の UTF-16 エンコーディングが実際には UTF-16 ではなく、実際には UCS-2 を使用していることを漠然と読んだことを覚えています。これは同じではありません。たとえば、U+FFFF を超える文字は使用できないようです。つまり、次のように考えてください。

そして、文字列を格納します"ᵽ9"

私は基本的に、次の回答の決定的な参照を探しています。

  • .NET の真の UTF-16 でない場合、それは何ですか?
  • .NET でサポートされている Unicode のバージョンは何ですか?
  • 最近のバージョンがサポートされていないか、近い将来に計画されていない場合、誰かが (非) 商用ライブラリを知っていますか、またはこの問題を回避する方法を教えてください。

¹)時間の経過とともに質問を更新しました。回答とより大きなコミュニティに関しては、より適切なようです。コメントで回答された部分の代わりに、元の質問を残しました。また、古い UCS-2 (サロゲートなし) は現在の古い 32 ビット Windows バージョンで使用され、.NET は常に内部で UTF-16 (サロゲートあり) を使用してきました。

0 投票する
4 に答える
2968 参照

windows - Windows では、Unicode Basic Multilingual Plane 以外の文字をどのように入力しますか?

Windows XP 以降、Windows が補助プレーンをサポートしていることは知っています。

Basic Multilingual Plane (BMP) 以外の文字を含むフォントを持っています。

これらの文字の場合、Unicode コードポイントは 5 桁の 16 進数で構成されます。

これらの文字をアプリケーションに入力する方法がわかりません。

Windows は、BMP での文字のキーボード入力のみをサポートしているようです。10 進数を入力するか、一部のアプリケーションでは 4 桁の 16 進数を入力できます。

エントリーがどのように管理されているか確認できますか?キーボードから直接実行するか、アプリケーションを使用して実行するかは気にしません。(デフォルトの Windows の「文字マップ」アプリケーションは BMP の文字のみをサポートしているため、提案が必要です。できれば、Unicode バージョン 6 ではないにしても、少なくとも 5 をサポートするアプリケーションが望ましいです。)

Java では、これらの文字は UTF-16 の「サロゲート ペア」を使用して管理されます。Windows にも古い「Unicode は 16 ビット」のレガシーがいくつかあり、同様の問題が発生する可能性があることを懸念しています。サロゲートペア番号を打ち込む必要があるという確認を得ることさえ答えになるでしょう。

ありがとう!

0 投票する
4 に答える
5906 参照

java - JavaでU + FFFFを超えるUnicodeへのchar?

Javaでcharを使用してU + FFFFを超えるUnicode文字を表示するにはどうすればよいですか?

次のようなものが必要です(有効な場合):

0 投票する
2 に答える
1654 参照

ios - iOSで5桁のUnicodeベースのエジプトの象形文字フォントを表示するためのコードは何ですか?

StackOverflowや他のサイトのコードは、iOSでUnicodeを表示するためにこれを提案しています。

これはほとんどのUnicode文字で機能しますが、エジプトの象形文字のUnicodeフォントでは失敗します(大きなフォントが読み込まれるのを待ちます)。

象形文字のUnicodeには、1桁の数字が追加されています(つまり、「\uF300」ではなく「\uF3001」)。その結果、間違った文字が表示され、「1」が末尾に残ります。

iOSが象形文字フォントを表示できることは明らかです。たとえば、このグリフ()を切り取ってsetTextステートメントに貼り付けると、TTFをインポートした後、iOS画面にグリフが表示されます。

したがって、問題は、4桁ではなく5桁を必要とするUnicodeフォント(つまり「\ uF3001」)を使用して、setTextステートメントでUnicode文字をどのように表示するかということです。

0 投票する
3 に答える
3815 参照

python - mysql に 4 バイトの Unicode を挿入すると警告が発生する

以下を見てください。

文字列'\xF0\x9F\x91\x8Aは、実際には 4 バイトの Unicode:u'\U0001f62a'です。mysql の文字セットは utf-8 ですが、4 バイトの Unicode を挿入すると、挿入された文字列が切り捨てられます。私はそのような問題をグーグルで検索し、5.5.3 未満の mysql は 4 バイトの Unicode をサポートしていないことを発見しました。残念ながら、私のものは 5.5.224 です。mysql サーバーをアップグレードしたくないので、python で 4 バイトの unicode をフィルタリングしたいだけで、正規表現を使用しようとしましたが失敗しました。それで、何か助けはありますか?

0 投票する
1 に答える
15305 参照

mongodb - MongoDB は、基本的な多言語面の外にあるコード ポイントを使用して UTF-8 の文字列を格納および操作できますか?

MongoDB 2.0.6 で、文字列の値に BMP 以外の文字が含まれる文字列フィールドを含むドキュメントを保存またはクエリしようとすると、「UTF-16 が適切ではありません: 55357」、または「バッファが小さすぎます」

Mongo での多言語文字列、特に 0xFFFF を超えるこれらの文字を含む文字列の保存とクエリを許可するために、どのような設定、変更、または推奨事項がありますか?

ありがとう。

0 投票する
3 に答える
1268 参照

javascript - Basic Multilingual Plane から文字をエスケープするには?

Basic Multilingual Plane の文字については、'\uxxxx' を使用してエスケープできます。たとえば、/[\u4e00-\u9fff]/ を使用して一般的な漢字に一致させることができます (0x4e00-0x9fff は CJK Unified Ideographs の範囲です)。

ただし、Basic Multilingual Plane 以外の文字の場合、コードは 0xffff よりも大きくなります。'\u20000' は、コードが 0x20000 である文字ではなく、文字 '\u2000' と文字 '0' を意味するため、フォーマット '\uxxxx' を使用してエスケープすることはできません。

Basic Multilingual Plane から文字をエスケープするにはどうすればよいですか? これらの文字はほとんどのフォントで表示できないため、直接使用することはお勧めできません。

0 投票する
1 に答える
191 参照

javascript - Rails Asset Pipelineは、4バイトのUnicode文字の変更を縮小します

Railsアプリで、 http://code.kwint.in/emoji/を使用してUnicodeiOS絵文字を画像に変換しています。

開発では問題なく動作しますが、本番用にアセットをプリコンパイルすると、Unicode文字コードが変更されます。

たとえば、からに移動"😄"""ます。

上でリンクしたemoji.jsスクリプトが破損するため、この変更が発生しないようにするにはどうすればよいですか?