問題タブ [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 投票する
2 に答える
3709 参照

java - Basic Multilingual Plane 外の Java 正規表現一致文字

javaでUnicode Basic Multilingual Planeの外側から文字を(削除する意図で)一致させるにはどうすればよいですか?

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

macos - OS Xで、標準の入力方式エディターを使用して2番目のプレーンのUnicode文字を入力するにはどうすればよいですか?

私のCocoaアプリが基本多言語面外の入力を適切に処理することをテストしたいのですが、それをコピーして貼り付けることは問題外です。BMP以外の文字を入力する方法がわかりません!日本語を入力ソースとして設定し、日本語の単語を入力することでランダムなカタカナまたはひらがなを取得できますが、そのトリックはプレーン2の文字では機能しません。に文字を貼り付けると、入力方式エディターが閉じられるため、これも機能しません。私は実際に、米国英語のキーボードで正しいキーストロークをいくつかの言語の入力ソースに入力する必要があると思います(おそらく中国語が良い選択でしょう)。はっきりしない場合は、アジアの言語は話せません。

2番目のプレーンの一部の文字の例を次に示します。http://www.unicode.org/cgi-bin/UnihanGrid.pl?codepoint = 20000

私が持っている、または無料で入手できるフォントでグリフをレンダリングできる限り、0xffffを超えるUnicode文字はすべて私の目的に使用できます。

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

java - 正規表現ライブラリでの非 BMP Unicode 文字 (つまり、コードポイント > 0xFFFF) の Java サポート?

現在 Java 6 を使用しており (Java 7 に移行するオプションはありません)、java.util.regex パッケージを使用して、Unicode 文字を含む文字列のパターン マッチングを実行しようとしています。

java.lang.String が補助文字 (コードポイント > 0xFFFF の文字) をサポートしていることは知っていますが (Java 5 以降)、これらの文字でパターン マッチングを行う簡単な方法がわかりません。java.util.regex.Pattern では、4 桁を使用して 16 進数を表すことしかできません (例: \uFFFF)

ここで API が不足しているかどうかは誰にもわかりませんか?

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

javascript - charcodes の javascript の charcode からの Unicode 文字 > 0xFFFF

Unicode charcode から string/char を取得し、最終的にそれを DOM TextNode に入れて、クライアント側の JavaScript を使用して HTML ページに追加する必要があります。

現在、私はやっています:

charcode、charcode を含む 16 進文字列"1D400"です。返されるはずのユニコード文字は ですが、 aが返されます! 16 ビット範囲 ( 0000... FFFF) の文字は期待どおりに返されます。

説明および/または修正の提案はありますか?

前もって感謝します!

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

unicode - 実際に使用されている最も一般的な非 BMP Unicode 文字は何ですか?

あなたの経験では、BMP (Basic Multilingual Plane) の外側の Unicode 文字、コードポイント、範囲はこれまでで最も一般的ですか? これらは、UTF-8 で 4 バイト、または UTF-16 でサロゲートを必要とするものです。

その答えは、名前に使われている中国語と日本語の文字であると予想していましたが、最も広く普及している CJK マルチバイト文字セットには含まれていませんでしたが、私が最も取り組んでいるプロジェクトである英語ウィクショナリーでは、ゴシック アルファベットがこれまでのところはるかに一般的です。

アップデート

ウィキペディア全体をスキャンして非 BMP 文字を検出するソフトウェア ツールをいくつか作成しましたが、驚いたことに、日本語のウィキペディアでもゴシック体が最も一般的であることがわかりました。これは中国語のウィキペディアにも当てはまりますが、「」、「」、「」など、多くの漢字が 50 回または 70 回使用されていました。

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

qt - QCharからUnicodeコードポイント>U+FFFFを取得します

私はあらゆる種類の文字を処理し、ある時点でそれらに関する情報を表示することになっているアプリケーションを持っています。QChar、QStringなどでQtとその固有のUnicodeサポートを使用しています。

ここで、http://unicode.org/Public/UNIDATA/UnicodeData.txtでデータを検索するために、 QCharのコードポイントが必要ですが、QCharのunicode()メソッドはushort(unsigned short)のみを返します。 0から65535(または0xFFFF)までの数値です。コードポイントが0xFFFFを超える文字がありますが、これらを取得するにはどうすればよいですか?私が見逃しているトリックはありますか、それとも現在Qt / QCharでサポートされていませんか?

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

javascript - Google v8 (および nodejs) で 32 ビット Unicode 文字をレンダリングする方法

Google Chromeとnodejsの両方を駆動するjavascript vmであるGoogle v8でUnicodeの「アストラルプレーン」キャラクター(CIDが0xffffを超えている)をレンダリングする方法を知っている人はいますか?

おかしなことに、Google Chrome(ubuntu 10.4で実行されている11.0.696.71として識別されます)に次のようなhtmlページを与えると:

「幅の広い」文字と「幅の狭い」文字を正しくレンダリングしますが、nodejs で (を使用してconsole.log()) 同等のものを試すと、代わりに「幅の広い」文字に対して 1 つの � (0xfffd, REPLACEMENT CHARACTER) が取得されます。

また、理解できない理由で、Googleが16ビット幅のデータ型を使用して文字を実装することを決定したとも言われました。ばかげていると思いますが、サロゲート コードポイントは、16 ビットの挑戦的な経路を介して「アストラル コードポイント」の「チャネリング」を可能にするように正確に設計されています。どういうわけか、クロム 11.0.696.71 内で実行されている v8 は、このビットの unicode-foo または他の魔法を使用してその作業を行っているようです (何年も前に、静的ページでも代わりに常にボックスを取得していたことを覚えているようです)。

ああ、そうです、node --versionレポートv0.4.10、そこから v8 バージョン番号を取得する方法を見つけなければなりません。

更新私はコーヒースクリプトで次のことを行いました:

しかし、それは私に与えるだけです

この背後にある考え方は、Unicode を扱う JavaScript 仕様の脳死部分が義務付けられているように見えるからですか? /まったく禁止されていませんか?/許可しますか?サロゲート ペアを使用している場合、ソース ファイルのエンコーディング (utf-8) が問題の一部である可能性があります。結局、utf-8 で 32 ビット コードポイントをエンコードする方法は 2 つあります。もう 1 つの方法 (utf-8 仕様に従って推奨される方法) は、結果のコードポイントを計算し、そのコードポイントに必要なオクテットを書き出すことです。ここでは、数値のみを扱うことで、ソース ファイルのエンコーディングの問題を完全に除外します。上記のコードはdocument.write()クロムで動作し、 を与えるので、数字が正しいことがわかります。

はぁ。

編集私はいくつかの実験を行い、私が行うときにそれを発見しました

私はGoogle Chromeで正しい結果を得ます---ブラウザウィンドウ内とコンソールの両方で:

ただし、これは nodejs' を使用したときに得られるものですconsole.log:

これは、CID を超える utf-8 の解析0xffffとそれらの文字のコンソールへの出力の両方が壊れていることを示しているようです。ちなみに、python 3.1 は文字をサロゲート ペアとして扱い、その文字をコンソールに出力できます。

: この質問をv8-users メーリング リストに相互投稿しま​​した。

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

tomcat - Tomcat、UTF-8、および非 bmp 文字

Tomcat 6.0.32 で GWT ベースの Web アプリケーションを実行しています。

BMP 以外の文字 (これらの文字がファイル名に含まれる) を含む URL を取得するのに問題があります。3 バイト以下の文字を含む URL は問題なく機能します。

例: ファイル名は .txt - URL が UTF-8 としてエンコードされている場合、%F0%A5%A7%84.txt です。

http://localhost:8080/foo/bar/%F0%A5%A7%84.txt?param1=x&param2=yその特定のビューが見つかりません

ただし、ファイル名が犬.txtの場合 - URLがUTF-8でエンコードされている場合、%E7%8A%AC.txt -

http://localhost:8080/foo/bar/%E7%8A%AC.txt?param1=x&param2=yビューは正しく配置されています。

Windows XP マシンで URIEncoding=UTF-8 を使用するように、Tomcat で server.xml を設定しています。

BMP 以外の文字のデコードに関して、Tomcat 6 の現在の制限を知っている人はいますか?

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

java - 補足Unicode文字を使用した文字ストリームでのJava読み取り

Javaを使用して補足のUnicode文字を読み取るのに問題があります。補足セット(\ uFFFFより大きいもの)に文字が含まれている可能性のあるファイルがあります。UTF-8を使用してファイルを読み取るようにInputStreamReaderを設定すると、read()メソッドが補助文字ごとに1文字を返すことを期待しますが、代わりに16ビットのしきい値で分割されるようです。

基本的なUnicode文字ストリームについて他にもいくつか質問がありましたが、16ビットを超える場合は何も処理されていないようです。

簡略化したサンプルコードを次に示します。

補足文字を含むUTF-8エンコードファイルを正しく読み取るために私が何をする必要があるかを誰かが知っていますか?

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

ruby - 4バイトのUnicode文字を検出するruby 1.8.7の正規表現

ruby 1.8.7 で 4 バイトの Unicode 文字 (具体的には絵文字) の存在を検出するために ruby​​ regexp を記述する方法を誰か教えてもらえますか? 私は、mysqlがデフォルトで、現在 iOS 5 で使用されている 4 バイトの絵文字 Unicode 文字を保存できないという事実を処理しようとしています。

ありがとう!