0

私は長い間、Unicode の使用法に関する質問に悩まされています。Unicode により、(グローバリゼーションの観点から) ソフトウェアの開発を加速および簡素化できますが、次の要因が懸念されます。

  1. メモリとディスク容量の使用量の増加。
  2. テキスト処理パフォーマンスの低下;
  3. アジアの言語はすべて同じように扱われ、国家の特異性が損なわれました。

すべての最初の段落でそれは明らかです... しかし、私は本当かどうかはわかりません。アジア諸国向けにソフトウェアをローカライズする必要性に直面していて、経験を共有する準備ができている人はいますか?

現時点では、狭いプロファイルのエンコーディングを使用しようとしています (ロシアの場合は cp1251、トルコの場合は cp1254 など)。誰かがこの問題についてアドバイスしてくれますか?

4

4 に答える 4

1
  1. バイト単位のデータサイズへの影響は、Unicodeエンコーディングの選択とデータのタイプによって影響を受けます。たとえば、UTF-8(Web上で唯一有用なUnicodeエンコーディング)を使用すると、英語のテキストは8ビットエンコーディングと同じサイズになりますが、活字に正しい句読点があり、それぞれ2バイトかかる場合があります。トルコ語のテキストの場合、ASCII以外の文字は1バイトではなく2バイトです。ロシア語のテキストの場合、キリル文字は2バイトです。ほとんどの場合、これはそれほど重要ではありません。
  2. テキスト処理のパフォーマンスは、何をするか、どのように行うかによって異なります。当然のことながら、心配する価値のある問題はありません。処理が十分に高速である場合、8ビットエンコーディングを使用して処理が10%高速になるかどうかはほとんど問題になりません。
  3. Unicodeの統合には影響がありますが、確かにアジアの言語はすべて同じように扱われるわけではありません。Unicode標準には、アジアのスクリプトおよび言語での文字の特定の処理について多くのことが言えます。さまざまな言語でさまざまな形のCJK文字を参照している場合、通常の解決策は、使用する言語用に設計されたフォントを使用することです。(さらに、OpenTypeフォントを使用する場合は、原則として少なくともフォント内で処理することもできます。)

公式のUnicodeFAQをチェックしてください。このような問題については多くのことを言う必要があります。

于 2012-11-01T07:59:01.883 に答える
0

最初の 2 点はほとんど無視できます。サイズとパフォーマンスの違いが識別可能な違いを生み出し、混合エンコーディングの頭痛の種を正当化する、非常に具体的なユースケースが必要です。

ユニハン文字について: 文字の意味によってグループ化されていますが、その文字は異なる書記体系でわずかに異なる書き方をする場合があります。これは言語を適切にマークアップする問題であり、エンコーディングの問題ではありません。HTML ドキュメントでは、lang属性でドキュメントをマークしたり、言語の文字の外観を適切に変更する CSS を使用して特定のフォントを設定したりできます。これを正しく処理する方法は、ソフトウェアの種類 (HTML、デスクトップ アプリなど) によって異なります。それについては、新しい詳細な質問を開くことをお勧めします。

于 2012-11-01T07:14:34.250 に答える
0
  1. 文字サイズの拡大: はい。文字サイズは 6 倍まで拡大できます (UTF-8 の場合)。しかし、今日ではテキストの保管は大きな問題ではありません。

  2. テキスト処理パフォーマンスの低下: 私の意見では、いいえ。UTF-8 文字は最大 6 バイトかかる場合がありますが、テキストをスキャンすると、UTF-8 文字の最初のバイトで、それを読み取るためにあと何バイトあるかが既にわかっています (スキャン中の現在の文字) )。そのため、スキャンのパフォーマンスは O(n) と同じままになる可能性が高くなります。ここで、「n」はテキストの長さです。最高のパフォーマンスを維持するには、インデックスによってテキスト内の文字にアクセスしないようにしてください (そうです、これはパフォーマンスのダウンポイントです)。Java 文字列は一連の 2 バイト文字であるため、Java 文字列は文字列文字へのランダム インデックス アクセスの影響を受けません。

  3. アジアの言語はすべて同じように扱われ、国家の特異性が損なわれます: ええ、人間の言語は、テキスト形式で表示される場合はすべて同じですが、1 画の文字「i」または 16 画の「長」の文字は単なる文字です。 .

于 2012-11-01T07:14:52.363 に答える
0

テキストのサイズが大きくなり、以下のすべてが実際には真実ではありません。

UTF-16 などの昔ながらの Unicode エンコーディングの場合は、正しい可能性があります。UTF-8 は、ASCII のみの文字列の場合、ASCII より大きくなく、遅くもありませんが、すべての Unicode コード ポイントをエンコードできます。UTF-8 は、今日の市場での Unicode のデファクト スタンダードでもあります。

http://www.utf8everywhere.orgには、さまざまな Unicode エンコーディングのパフォーマンスに関する広範な分析があり、アジア言語も含まれています。

于 2012-11-01T08:27:52.890 に答える