問題タブ [utf-32]

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 投票する
5 に答える
18682 参照

utf-8 - UTF-16のポイントは何ですか?

UTF-16エンコーディングのポイントを理解したことはありません。文字列をランダムアクセスとして処理できるようにする必要がある場合(つまり、コードポイントがコードユニットと同じである場合)、UTF-16は可変長であるため、UTF-32が必要です。これが必要ない場合、UTF-16はUTF-8と比較して膨大なスペースの浪費のように見えます。UTF-8およびUTF-32に対するUTF-16の利点は何ですか?また、WindowsおよびJavaがそれをネイティブエンコーディングとして使用するのはなぜですか?

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

c - C の UTF-32 から UTF-8 へのコンバーター、バッファーはヌル / ゼロでいっぱいです

私はこれを機能させるために永遠に努力してきました。プログラムは、バッファ サイズ用の on とファイル名用の 2 つの引数を取り、そのファイル形式を UTF-32 から UTF-8 に変換することになっています。fgetc() 関数を使用して、int 配列に Unicode コードポイントを入力しました。バッファの内容を出力する printint をテストしましたが、各コードポイントの代わりにこれらすべてのヌル文字が含まれています。

たとえば、文字「A」のみで構成されるファイルの場合: バッファ [0] は 0 バッファ [1] は 0 バッファ [2] は 0 バッファ [3] は 41

U+7F を超えるコードポイントは、最終的に分割されます。

バッファを初期化するためのコードは次のとおりです。

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

utf-8 - 多国籍企業に最適な文字エンコード

世界中のすべての言語に翻訳される Web サイトがあり、これらすべての翻訳を含むデータベースがある場合、どの文字エンコーディングが最適でしょうか? UTF-128?

もしそうなら、すべてのブラウザは選択されたエンコーディングを理解していますか? 文字エンコーディングを実装するのは簡単ですか、それとも隠れた要因がありますか?

前もって感謝します。

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

visual-c++ - ファイルからテキストを読み取り、UTF32 に変換する

CSFML 1.6 ライブラリ (OpenGL ベースのマルチメディア ライブラリ) を使用しています。私はポーランドに住んでいます。ここには次のような特殊文字があります。

これで、この文字で構成されるテキスト ファイルができました。CSFML は、表示された文字列に UnicodeText を設定する関数を提供します。引数は int の配列です。

ファイルから文字を正しく読み取り、この関数に渡すにはどうすればよいですか?

どんな助けでも本当に感謝しています。

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

c# - C#で32ビットのUnicode文字を使用するにはどうすればよいですか?

たぶん私は32ビット文字列は必要ありませんが、32ビット文字を表す必要があります

http://www.fileformat.info/info/unicode/char/1f4a9/index.htm これで、symbolフォントを取得し、(URLまたは任意のテキスト領域に)貼り付けると文字が表示されるので、そのためのフォントサポート。

しかし、C#/。NETアプリでどのようにサポートしますか?

-編集-何かを追加します。上記の文字を.NETwinformアプリに貼り付けたときに、文字が正しく表示されません。それをFirefoxに貼り付けると、正しく表示されます。WinFormアプリで文字を正しく表示するにはどうすればよいですか?

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

python - Pythonで信頼できるUnicode文字数を取得するには?

Google App Engine は Python 2.5.2 を使用しており、明らかに UCS4 が有効になっています。ただし、GAE データストアは内部で UTF-8 を使用します。したがって、u'\ud834\udd0c' (長さ 2) をデータストアに格納すると、それを取得すると、'\U0001d10c' (長さ 1) が得られます。文字列を格納する前後で同じ結果が得られるように、文字列内の Unicode 文字の数を数えようとしています。そのため、文字列を受信したらすぐに (u'\ud834\udd0c' から '\U0001d10c' に) 正規化してから、その長さを計算してデータストアに入れようとしています。UTF-8にエンコードしてから再度デコードできることはわかっていますが、もっと簡単で効率的な方法はありますか?

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

qt - Qtでは、QTextCodec :: codecForName( "UTF-16")とcodecForName( "UTF-32")は、使用するエンディアンをどのように決定しますか?

Qtのドキュメントには、(とりわけ)次のUnicode文字列エンコーディングがサポートされていると記載されています。

  • UTF-8
  • UTF-16
  • UTF-16BE
  • UTF-16LE
  • UTF-32
  • UTF-32BE
  • UTF-32LE

2オクテットと4オクテットでエンコードされたUnicodeにリストされている3つの異なるコーデックのため、2つの非エンディアンコーデック(「UTF-16」と「UTF-32」)がどちらのエンディアンを使用するかをどのように決定するのか疑問に思いました。

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

c++ - どのオープンソースCまたはC++ライブラリが任意のUTF-32をNFCに変換できますか?

どのオープンソースCまたはC++ライブラリが任意のUTF-32をNFCに変換できますか?

これまでのところ、これを実行できると思うライブラリ:ICU、Qt、GLib(わかりませんか?)。

他の複雑なUnicodeサポートは必要ありません。任意であるが既知の正しいUTF-32からNFC形式のUTF-32に変換するだけです。

私はこれを直接行うことができるライブラリに最も興味があります。たとえば、QtとICU(私が知る限り)はどちらも、UTF-16との間の中間変換ステージを介してすべてを実行します。

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

c - UTF-16 を UTF-32 に変換し、結果の wchar_t を C で出力する方法は?

UTF-16 文字の文字列を出力しようとしています。しばらく前にこの質問を投稿しましたが、iconv を使用して UTF-32 に変換し、wchar_t の文字列として出力するというアドバイスが与えられました。

私はいくつかの調査を行い、次のようにコーディングすることができました:

iconv 呼び出しは常に 0 を返すので、変換は問題ないと思いますか?

ただし、印刷は当たり外れがあるようです。変換された wchar_t 文字列が OK を出力する場合があります。また、wchar_t の出力中に問題が発生したように見え、printf 関数呼び出しを完全に終了させて​​、末尾の「***」も出力されないようにすることもあります。

私も使ってみました

しかし、何も印刷されません。

ここで何か不足していますか?

参考:CでUTF-16文字を出力するには?

アップデート

コメントにいくつかの提案を組み込みました。

更新されたコード:

それでも同じ結果ですが、すべての UTF-16 文字列が出力されるわけではありません (printf と wprintf の両方)。

他に何が欠けているのでしょうか?

ところで、私は Linux を使用しており、wchar_t が 4 バイトであることを確認しました。

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

c++ - Linuxのコンソールに出力される国際UTF-32文字列

これは、UTF-32wchar_t文字列でロシア語のフレーズを次のように出力するコードです。

  • 正しいもの:Ubuntu11.10のUTF- 8gnomeターミナルから実行した場合のПорядок
  • 上記のテスト実行でのEclipseのРџРѕСЂСЏРґРѕРє
  • 45 = B8D8:0B> @ Eclipseの実際のプログラム(誰がどこで何をしているのかさえわかりませんが、誰かがロケールを台無しにしていると思います)
  • ??????? ロケールを呼び出さない場合
  • strは、Eclipse WatchウィンドウにDetails:0x400960 L "\ 320 \ 237 \ 320 \ 276 \ 321 \ 200 \ 321 \ 217 \ 320 \ 264 \ 320 \ 276 \ 320\272"として表示されます。
  • EclipseメモリウィンドウではASCIIのみのバイト文字として表示されます(これがUTF-32文字列であることを指定する方法はありません)

これは、Eclipseコンソールまたはプログラムのいずれかの設定ミスであると思います。たとえば、Eclipseで私のコードを実行しただけの人は、正しい出力を表示するからです。

誰かがこの混乱に光を当てることができますか?UTF-32 wchar_t文字列に格納されている国際シンボルを出力するためにすべての部分(OS、gcc、ターミナル、Eclipse、ソースなど)をセットアップする正しい方法は何ですか?

ちなみに、UTF-32を使用しているのに、なぜこれらすべてに注意を払う必要があるのでしょうか。それで、内部に何があるかを知ることができます...