Out of Memory

本ブログは更新を停止しました。Aerieをよろしくお願いいたします。

目次

Blog 利用状況

ニュース

2009年3月31日
更新を停止しました。引き続きAerieを御愛顧くださいませ。
2009年2月3日
原則としてコメント受付を停止しました。コメントはAerieまでお願いいたします。
詳細は2月3日のエントリをご覧ください。
2008年7月1日
Microsoft MVP for Developer Tools - Visual C++ を再受賞しました。
2008年2月某日
MVPアワードがVisual C++に変更になりました。
2007年10月23日
blogタイトルを変更しました。
2007年7月1日
Microsoft MVP for Windows - SDKを受賞しました!
2007年6月20日
スキル「ニュース欄ハック」を覚えた!
2006年12月14日
記念すべき初エントリ
2006年12月3日
わんくま同盟に加盟しました。

カレンダー

中の人

αετο? / aetos / あえとす

シャノン? 誰それ。

顔写真

埼玉を馬鹿にする奴は俺が許さん。

基本的に知ったかぶり。興味を持った技術に手を出して、ちょっと齧りはするものの、それを応用して何か形にするまでは及ばずに飽きて放り出す人。

書庫

日記カテゴリ

仕様の話

ある機器で表示するデータを作るためのアプリを作っています。
このアプリは、Windows上でC#で動きます。
対象の「ある機器」も、中身はパソコンで、WindowsXP Embeddedが入っているらしいです。

で、2つ問題があります。

ひとつは、「この機器上で表示されるデータは、JIS第2水準までの文字にしろ」と言われていること。
.NETで、ある文字列内の文字が全てJIS第1、第2水準に収まっているかどうかはどうやってチェックしたものか。

もうひとつは、機器のUI上、それなりに長い文章を2段に分けて表示している部分があるのだけど、ここの2段目の先頭に禁則処理をすべし、という仕様があること。
これ、機器が勝手に長い文章を2段に分けて禁則処理してくれればいいのだけれど、そうではなく、データを作るアプリ側で禁則処理をして、DBの「一段目」「二段目」という列にそれぞれ入れなければならない。
だが、具体的にどの文字を避けるべきなのかは明示されておらず、「一般的な句読点」と言われているだけ。
「避けなければならない文字の完全なリストを提出してくれ」と要求すべきか。

投稿日時 : 2008年2月22日 12:59

Feedback

# re: 仕様の話 2008/02/22 13:30 中博俊

JIS第1水準、第2水準の完璧なリストがあるので、1文字ずつチェックするので完璧版が作れる。
#出来れば公開して欲しいが。

2番目の問題は完璧なリストを作れというだけ。簡単簡単

# re: 仕様の話 2008/02/22 13:47 biac@朝霞に1年、志木に3年、いまは名古屋

f(^^; つ JIS X 4051 日本語文書の組版方法 4.3 行頭禁則処理, 4.4 行末禁則処理
※ ココから閲覧可能 → http://www.jisc.go.jp/app/JPS/JPSO0020.html

「JIS第1、第2水準に収まっているかどうか」のほうは、 MSDN フォーラムでお願いしてみるとか。
http://forums.microsoft.com/MSDN-JA/ShowForum.aspx?ForumID=1989&SiteID=7
※ あるいは。 ちょっと仕様を変えて、 「Shift JIS に変換可能な文字」 にしてもらうとか。

# re: 仕様の話 2008/02/22 14:06 levin

れびん@東京県です。

禁則処理について、個人的な経験則などでの解釈を少し。
どの程度詳しいお客様か、とかにも依ると思うのでケースバイケースでしょうけど。
 
基本的には曖昧な仕様が提示された場合、私は“落としどころ”を自分で設定します。
今回の件で言えば「一般的な句読点」と表現された文字のリストをこちら側で作成・提示した上で
「これで禁則処理を行おうと考えております」
が、一番丸く収まるパターンじゃないかと。

# re: 仕様の話 2008/02/22 14:20 シャノン

> JIS第1水準、第2水準

合ってるかどうか知らないが、仕様書に
第一水準:0x889F~0x9FFC
第二水準:0xE040~0xEAFC
とあるので、これでいいか、と。
ただ、これはShift-JIS での文字コードなので、Unicode でのどれにあたるかを調べるのが面倒くさいなぁ。

DBの文字コードはOracleでJA16SJISTILDEらしい。

機器のほうのフォントが何なのかも知らんし。
第一、第二水準の文字なら完全に表示できるフォント使ってるんだろうな…
まぁいいや、そこまでは俺の責任範囲じゃないわい。

> JIS X 4051

そんなものまで…w

> 一番丸く収まるパターンじゃないかと。

そうすればよかったかもしれない。
が、既にお願いしちゃったので、出てきたものを見てから、足りないものがあれば補って再度リスト化して聞いてみよう。

# re: 仕様の話 2008/02/22 14:51 Ognac

UnicodeとSjisは from~to の範囲比較では無理な部分があったかと。個別判定が不可避だった希ガス。
既出ですが、逆変換して変換可否で判定するのがいいかと。

# re: 仕様の話 2008/02/22 16:09 シャノン

> 個別判定が不可避だった希ガス。
えー。

> 逆変換して変換可否で判定するのがいいかと。
ふむー。
.NET Fx 1.1 の Encoding-932 でいいか。

聞いてよかった。いっぱいあった。
禁則文字リスト:
,.!?-
、。,.・!?」』)]〉》〕】
音引き(ー)、くり返し符号(ゝゞヽヾ々)
拗・促音(ぁぃぅぇぉゃゅょゎっァィゥェォャュョヮッヵヶ)

# re: 仕様の話 2008/02/25 11:25 biac

ぅは。 .NET Framework 1.1 ですか~

てことは、 String.Normalize メソッド
http://msdn2.microsoft.com/ja-jp/library/8eaxk1x2.aspx
が無いわけで。
FormC で Normalize してやれば、 例えば、 「か」 (U+304B) + 濁点 (U+3099 - Combining Katakana-Hiragana Voiced Sound Mark) の 2文字は、 「が」 (U+304C) 1文字に変換されます。 それから Shif JIS に変換してやれば、 見た目が 「が」 の文字は、 めでたく全て \x82AA になります。 ( この正規化をせずに Shift JIS に変換した場合は、 「か」 + 変換不能文字 ってことになります。 )

UNICODE の正規化処理を独自に書くなんて恐ろしい事はやらないほうが吉でしょうから、 見た目は Shift JIS の文字に見えても弾いちゃう文字があるよ、 ってことで。 f(^^;

タイトル
名前
Url
コメント