wxWidgetsと日本語
何度も同じようなエントリを書いているが、書かずにはいれない。日本語って面倒。
#include <wx/wx.h> #include <iostream> int main() { wxString jap = wxT("あいうえお"); std::cout << jap << std::endl; std::cout.setf( std::ios::hex, std::ios::basefield );// 16進数で出力させる std::cout.setf( std::ios::showbase ); // 0xを付ける for (int i=0;i < jap.Len();i++) { wxUniChar test(jap[i]); std::cout << (int)test << " "; } return 0; }
出力結果
$ ./wxtest.exe ▒▒▒▒▒▒▒▒▒▒ 0x3042 0x3044 0x3046 0x3048 0x304a
Mingw/MSYS環境ではちゃんと文字列が表示されなかった
けれどもwxWidgetsは日本語を内部でUnicodeとしても保持しているのがわかる
wxWidgets 2.8.4以降では wxString::ToUTF8()でUTF-8に変換が可能だ