2012-03-29 66 views
8

私はncursesを使ってCで書かれたプログラムを持っています。ユーザーはそれを入力して表示することができます。ユーザーの入力utf8の文字が正しく表示されません。ncursesにC言語でUTF-8文字を正しく表示させる方法は?

入力したcharsユーザーをファイルに保存しました。そして、私はcatこのファイルを直接シェルで表示すると正しく表示されます。

私はstackoverflowとgoogleを検索して、ncurseswとのリンクなどいくつかの方法を試してみましたが、間違った表示をしていました。

と私ldd /usr/bin/screenlibncurses.so.5 => /usr/lib64/libncurses.so.5

screenが正しく何のユーザ入力を表示することができます。

ncursesにUTF-8文字を正しく表示させる方法を教えてください。

ncursesを使用してCでUTF-8文字を表示する一般的な方法は何ですか?

答えて

14

ncursesを初期化する前に、setlocale(LC_CTYPE, "");(UTF-8ベースのロケールが設定されている)を呼び出す必要があります。また、あなたのncursesがワイド文字サポート( "ncursesw")で実際に構築されていることを確認する必要がありますが、これは現代のディストリビューションではデフォルト/ビルドのみです。

+1

ncursesがワイド文字サポートで構築されたかどうかを簡単に知る方法はありますか? – KyleL

+2

@KdawgUD Ubuntuでは、sudo apt-get install libncursesw5-devを使ってライブラリをインストールすることができます。ビルド時にncurseswライブラリを使用し、ncursesw/curses.hライブラリをインクルードします – bitrayne

関連する問題