- - PR -
桁数とバイト長
«前のページへ
1|2|3
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-05-08 18:01
フ、フランス語!? うーんフランス語のことまで考えたことはなかったのですが、フランス語を使うシステムにおいては固定幅フォント(fixed/monospaced)が存在しないということなんですか? たとえば、Java で monospaced フォント、サイズ 12 で文字幅を調べると、半角なら 6、全角なら 12 を返すと思っていたのですが、この原則がフランス語では成り立たないということでしょうか? | ||||||||||||
|
投稿日時: 2007-05-08 18:37
うーん。なんというか、極めて環境に依存しそうな判別方法ですね…。 monospacedのフォントでサイズを指定して横幅が確実に6と12でくると想定して システム作って大丈夫なんだろうか…。 フランス語のアクサン記号は横幅には影響しないと思うのですが、 「œ」の合字とかは大丈夫なのかと疑問はつきません。 参考:Wikipedia「合字」 http://ja.wikipedia.org/wiki/%E5%90%88%E5%AD%97 UNICODEで動いているからには入力からあらゆる文字コードが入力されてくることを 想定しないといけないわけで、日本語のみを想定したシステムにする場合は 逆に非日本語を弾くようにチェックしないと思わぬ事態が発生するかもしれません。 そういえば、UNICODEのRLOを利用したファイル拡張子の偽装のニュースが この間出ていましたね。UNICODEでシステムを作っていて、 ヘブライ語などの右から左へ書く文字とか混入されても大丈夫なシステムに なってるのかを気にしないといけない時代なのかもしれません。 http://slashdot.jp/security/article.pl?sid=07/04/22/0520221 | ||||||||||||
|
投稿日時: 2007-05-08 19:05
さらに脱線かもしれませんが、
Windows Vistaだと結合文字がありますね。 Unicodeで、304d, 3099 で "が" みたいに表示されます。 (今、Vistaが手元にないので、多少間違っているかもしれません。) こういうのを踏まえると、 見た目で長さを制限する、 というのが現実解のように思えてきます。 | ||||||||||||
|
投稿日時: 2007-05-08 19:06
だめなんですか?
パッケージ開発・販売なんかだと想定すべき範囲が広いのかもしれませんね。うちは顧客に合わせて専用の業務システムをスクラッチ開発しているので・・・。そこまでの汎用性・堅牢性を求めてはコストが合いません。できることをすべてやる、可能性をすべて潰す、だけでなく、要件を絞り仕様として制限することも重要だと思いますし。まあ、開発しているシステムに要求されているレベルが異なるということで・・・。がんばってください。 | ||||||||||||
|
投稿日時: 2007-05-08 19:59
一応考えられるネタとしては、フォント名が固定ではなくmonospacedにしているだけだと JavaVMが実行されるOSやフォントの設定環境、VMのバージョンなどで取れる幅が 変わる可能性があるのではないかと。 monospacedでフォントサイズ12なら幅は6か12なんだよ!という仕様が どこかで定められているなら信用しちゃっていいと思うんですが、 その辺の値って環境依存なのではないかと思うのですよね。 だから、汎用的な判断手法として使えるほどの信頼性があるのかどうなのか…。 もっとも、業務システムなんてものは固定できるところは固定しちゃって構わないので 客先の環境で動けばそれでよし、というのもアリでしょうが、OSのバージョンアップとか そういった環境変更のタイミングでなにか不具合がでるんじゃなかろうか、という懸念があります。 このあたりはケースバイケースですね。 | ||||||||||||
|
投稿日時: 2007-05-09 18:17
一応、いいだしっぺの法則にのっとり私が実験してみたところ、 monospaced、PLAIN、サイズ12のフォントでFontMetrics.charWidth()をしたところ、 幅が6、12にならないケースがいくつか発見できました。 WindowsXP、SunのJDK1.5のVMを使用しています。
ベブライ語やアラビア語やタイ語などの横幅を調べると 6、12にならないことが簡単に確認できます。 フランス語の合字のCEなどは幅6でした。参考まで。 |
«前のページへ
1|2|3