2017-09-20 15 views
0

C++でISO 8859-XをUNICODEに変換するオプションは何ですか?ユニコードでは、すべてのISO 8859-Xがその範囲を占める文字セットなので、ユニコードコードポイントは0と65,535の間にあることを意味します。ISO 8859-Xをユニコードに変換する方法

最も明白なのは、マッピングテーブル(http://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-7.TXT)を取得し、そのためのパーサーを作成することです。しかし、私はこれにいくつかの図書館があると思います(私は誰も見つけませんでした)?

私は、ISO-8859-1変換のための簡単なコードがあることを知っていますが、この特定のISOエンコーディングのみで動作するので無視してみましょう。

オプションは何か分かりますか?おそらくそれぞれのオプションの長所と短所は?

個人的には、片方向変換とISOのみが必要なので、私は軽いものを好むでしょう。完全なUNICODEサポートではありません。

+0

アルゴリズムがないため、選択肢は表またはこれらの表をラップするライブラリーです。私はそれをリソース要求と呼ぶが、これは主観的ではない。公式のテーブルがあります。しかし、それらのテーブルはすでに述べられているので、私は本当の疑問が何であるか疑問に思います。 – MSalters

+0

私は、これのためのライブラリのいくつかの並べ替えがあるのだろうかと思っていた。または、これのための標準C++ライブラリのいくつかの関数?私はちょうど私が尋ねているので、必要でない場合は車輪を再発明したくないでしょう:) – Chris

+0

Boost.Localeを見てください。 –

答えて

1

ICONVまたはICUのような専用のUnicode変換ライブラリを使用できます。

しかし、必要なのはISO-8859-XからUnicodeへの変換であり、他の文字セットではない場合は、適切なUnicodeコードポイントを含む静的wchar_t[16][256]配列を宣言するだけです。 16個のISO-8859文字セットしか定義されていません(多分数えば多少異なります)。それぞれ最大256個の値があります。文字列をインデックスとして配列に入力文字列をループすることができます。

関連する問題