0

背景:デーバナーガリー フォントでは、同じ文字コードを別の文字として視覚的に表現できます。あるフォントでは「10」は「A」として視覚的に表現され、別のフォントでは「10」は視覚的に「B」として表現されます。したがって、テキストを選択してフォントを変更すると、文字も変更されます。興味深いことに、キーボードのボタンでも同じことが起こります。あるフォントで「A」を押すと「A」が表示され、別のフォントでは「A」を押すと「B」が表示されます。

私がやろうとしているのは、ソフトウェアに貼り付けられたテキストで使用されているフォントを特定して、フォントが変更されたときにプログラムで文字を変更して、新しいフォントでも同じことを意味するようにすることです。

これをどうするかについての指針はありますか?

4

1 に答える 1

1

非 Unicode フォントの場合、これを実現する唯一の方法は、各フォントのマッピングをある程度理解することです。非 Unicode エンコーディング標準があっても、多くのデバナーガリー/ヒンディー語フォントはそれを無視するか、変更や追加を行い、上記のケースになります (たとえば、1 つのフォントのキー 'A' が形状に対応する場合があります)。 'म' ですが、別のフォントの 'A' は 'क' の形をしています... 理論的な例にすぎません)。

役立つ変換ツールが少なくとも 1 つありますが、最終的には、入力フォント固有のコーディングを出力フォント固有のコーディングに変換することになります。フォント固有のマッピングごとにフォント固有の Unicode へのマップがある場合は、Unicode を仲介として使用し、任意のフォントのスキームとの間で変換できます...次のようなものがあります。

font         font-specific code    Unicode
----         ------------------    -------
MyFont       0001                  U+0021
MyFont       0002                  U+0022
...
MyOtherFont  00F1                  U+0021
MyOtherFont  00F2                  U+0022
...

これらのマッピングの完全なデータベースを使用すると、"MyFont" に設定されたテキストを "MyOtherFont" のテキストに簡単に変換できます。

もちろん、可能であれば、フォントとテキストの両方を Unicode に変換するのが最善の方法ですが、それは不可能かもしれません。

于 2012-06-01T19:18:55.603 に答える