人生のプチ美学を教えてください!!

C言語でプログラミングをしているのですが、unicodeの表示方法がよくわかりません。┌という文字(unicodeでU+250C)を表示したく、wchar_t型など調べたのですがプログラムの書き方がよくわかりませんでした。unicodeを直接指定する方法か'┌'のように直接指定する方法が知りたいです。アドバイスお願いします。

A 回答 (4件)

cgwinを起動してみましたが、ちょっとややこしそうですね。



wchar_t unitext[100] = L"あ";
cout << hex << unitext[0] << endl;
cout << hex << unitext[1] << endl;
とすると、82とa0がはいっていました。(SJISです)

printfやcoutを使ってコンソールで表示するには
一度sjisに変換しなければいけないかもしれません。

unicode→sjisは
setlocaleや
wcstombsを
調べてください。
こういうのもあります。
http://www.doumo.jp/modules/general/mojicode.html
(jisですがjisからsjisへの変換は簡単です)
    • good
    • 0

表示媒体は何ですか?


sjisコンソールですか?
UTF-8コンソールですか?
qt(sjis)ですか?
それにより表示方法は違います。

文字をunicodeで保持するのは勝手ですが、
表示する際には、表示媒体が表示できるコードに
変換する必要があります。

wchar_t a = L"┌"とやっても、ソースコードがeuc(sjis)なら、中身は、euc(sjis)ですよ。

やるなら、
表示媒体が、UTF-8なら、
wchar_t a = toUtf8(0x250C)
wprintf("%lc", a);

です。
    • good
    • 0

cygwin+gccではやったことはありませんが。

。。

VC++のように「Unicodeビルド」があるならばそれを使って、VCで言うところのTCHARもしくはwchar関係の関数のみを使う必要があります。

Unicodeビルドのような関数がない場合に、Unicodeを表示するにはprintfのような関数は使わずに、WindowsでしたらIMultiLanguageを使って文字を出力する必要があります。
    • good
    • 0

BCBですがこんな感じでいけます。


wchar_t wc[100] = L"ABC";
char c[100];
sprintf(c, "%S", wc);

この回答への補足

アドバイス頂いたとおりにやってみたのですが、うまくいきません。何も表示がされない状態です。
cgwinを使っています。

補足日時:2004/12/13 21:42
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!