Windows以外でのwchar_tというやつ

まず、id:w_oさんに嘘混じりのコメントをしたことを謝らないといけません。ごめんなさい。
http://d.hatena.ne.jp/w_o/20050616#p2
FreeBSD4(sakura)に、CGI色々送り込んで試しましたところ…Windowsしか知らない馬鹿には驚愕の事実が判明!?いたしました。
まず、FreeBSD4ではsizeof(wchar_t) == 4です。これはこれでいいとして。
驚愕の事実「mbstowcs,wcstombsは、setlocaleで設定したエンコーディングUnicodeの変換を行う関数ではない。」
これらの関数は、単に、たとえばsetlocaleでSJISにしてあれば、「あ(0x82,0x40)」というマルチバイト文字を、0x00008240という固定バイト文字に、まとめあげるだけです…!
従って、BSDの世界では、Lを文字列の頭につけようが、wchar_tやWide_Wide_Stringを使おうが、ソースコードUnicodeで保存しようが、何の解決にもなってないのでした…。
というわけで、Linuxではどうか知りませんが、mbstowcsが上手く動かなかったのであれば、事情は同じと推測して…iconvを使わざるをえないという結論ですね…。
…出直してきます。