Pythonの日本語処理というか外部ライブラリの罠?
python-ogreのresourceパス追加時*1に日本語入りのパスを渡すと失敗するという現象が発生した。
最初OGREがマルチバイト対応してないのかと思ったらソースに直接書いた文字列リテラルでは問題なくロードできてしまった。
出力される寸前にoutputに出してみてもまったく同じ*2。
失敗の原因は分かったのだが
wxWidgetのGenericDirCtrlコントロールが返すファイルパス文字列はUnicodeオブジェクトで
ソースコード直書きのファイルパス文字列はstrオブジェクトでした。
ただPython的*3にはむしろここはUnicodeオブジェクトで渡した奴が成功すべきじゃないの?とか思うんだが
どうもpython-ogre*4はファイルパスをマルチバイトで渡してやらないと駄目みたい。
C++版のOGRE3Dの文字列扱いもOGRE_WCHARスイッチ付けてコンパイルすれば
ワイド文字扱いになるみたいだけどインストーラー版はそうでないんだろか。
その辺の裏取りしたわけでもなくそのようなOGRE3Dドキュメントを見たわけではないのでただの憶測なんだけど。