私はC/C++でICUでいくつかのテストを成功させました。私は異なるエンコーディング(UTF-8、UTF-16LEなど)で異なるCSVファイルを解析し、データにいくつかの変更を行い、最後にすべてをUTF-8としてファイルに出力する必要があります。だから私の選択はICUのために落ちました。文字セットの検出は、通常、文字の処理とUTF-8への変換に非常によく機能します。ICUとNanaを使ったC++ GUIライブラリ - 文字列変換?
これで、CSVの読み込みや操作などを行うライブラリ部分をGUIライブラリNanaで統合したいと考えました。ナナはstd :: stringとstd :: wstringを使うようです。
ICUはすべてのデータを内部的にUTF-16として保存するので、ICUで作業するときはUCharsまたはUnicodeStringを取得する必要があります。しかし、どのようにICUに統合されていない、ナナと一緒に使うことができますか? UChar配列をwstringに変換する方法やUnicodeStringをwstringに変換する方法はありますか?
ICUのマニュアルには何もヒントがありませんでしたので、他の誰かが既にそれに取り組んでいたのでしょうか?
こんにちは!もちろん、それらのICU機能をテストします。私はちょうどUCharをwchar_t *に変換することを可能にする 'u_strToWCS'のようなICUの関数を見つけたので、これは動作していると確信しています。 static_castでいくつかの実験を行い、何が起こるかをお知らせします。私の期待は、これはWindows上ではうまくいくが、Unix/Linuxプラットフォームではうまくいくということだ。 –
inzanez
あなたのUChar *文字列に端末0を追加する必要があるかもしれない? – qPCR4vir
に依存します。通常、ICUの文字列操作関数で作業するときは、関数(u_sprintfなど)によって追加されます。それ以外の場合は、自分で追加する必要があります。 – inzanez