RSS Twitter Facebook

2008/12/23 (2008年12月 のアーカイブ)

ロケールではまる

KnobManの最新版で直し忘れていた問題が一つ残っていた。報告はもらっていたのだが、ついうっかり。

フランスとかでは小数点は(.)ピリオドではなく、(,)カンマだとか。て事で、ロケールの設定をシステムのデフォルトに設定( setlocale(LC_ALL,"") )して、printf("%f",...)とかで少数を文字列にすると 1,23 みたいに、カンマになっちゃうのだね。これでファイルを書き出すとアメリカのシステムでは読み込めないファイルのできあがり。 むうう。

ロケールの設定を一切しなければ、Cロケールなので小数点の問題はないのだが、mbstowcsとかで漢字の処理を入れる時には日本語ロケールにしなきゃいかんのだな。 やっぱ細かく設定してやんなきゃいけないみたい。

てか、マルチバイト文字で漢字を扱うというのが単に日本(私)の要求なので、ヨーロッパの方でANSI文字以外の何か(ウムラウトだとかそんな奴(?))を使いたいという人はすでに困った事になってるのかも。ま、あくまでツマミ画像作成ソフトなので、フランス語やドイツ語で文字が書かれたツマミがなければ問題ないのだが。

結局全部ユニコードで処理すればロケールを気にせずに言語の混合もできるのでそれが正解なのだとは思うが、時すでに遅く、マルチバイトベースで作られた.knobデータファイルが世の中に出回っているのだ。 ついでに、フランスの人が作った.knobデータには小数点として(,)カンマが埋め込まれているという事になる。 予想外にワールドワイドで使ってもらった結果ではあるが、これは困ったぞ。

今の所、小数はそんなに使ってないので致命傷にはなってないのだが、どうしたもんか。読み込みの時にはピリオドとカンマを両方許して今後の書き出しはピリオド、かな。

Posted by g200kg : 2008/12/23 02:01:09