長らく、A5:SQL Mk-2では結果セットのExcel出力やクリップボードへのコピーで NULLを出力するとき、ZWSP(Zero Width SPace)で両側をくくった ‘(NULL)’の文字列を使ってきました。これはオプションダイアログの「Excel出力」や「クリップボード出力」タブにあ る、「NULLを表す文字列」で変更できます。(初期値は “\x200B(NULL)\x200B” が指定されています。)
ZWSPはその名の通り、幅0のスペースで文字としては存在するが表示されない文字です。
このようなコードがなぜついているかというと、Excel出力した後にそれを再度コピーしてA5:SQL Mk-2に張り付けたときにNULLとして識別するためです。単に”NULL”や”(NULL)”だと「そういう文字列データ」かもしれないので、「一般的に使われない文字コード」を付加することで区別しているわけです。
ただ、この方式は時に混乱を招くようです。”(NULL)” 文字列を “” に置換してゴニョゴニョ…としたときにZWSPが気づかれないまま残ってしまい、トラブルになるわけです。
「わかりやすさ」を標榜するA5:SQL Mk-2としてはこれはちょっとよくありません。
この「ZWSPつき(NULL)」はこの文字列のまま、いじらなければそれほど悪さはしないはずなのですが…。
とりあえず、以下の条件で代替となる文字列を検討することにしました。
- 印刷されない、または紛らわしいコードを避ける。
- 実データとして「ほぼ」使われることがない。
- Windows Vista以降(できればXPでも)のMSゴシックで文字化けしない。
- できれば JIS X0208に含まれる範囲内
どうやら、Windows 7などでもサロゲートペア文字をつかうと文字化けするようです。必然的にJIS X0208に含まれる文字になります。このことはWindows XPでも表示されるということです。
色々考えた末、とりあえず「《NULL》」にしてみることにします。当然ですが、ZWSPで括ったりはしません。「《》」は二重山括弧と読むそうです。
「≪NULL≫」(数学の…より非常に小さい・大きいの記号)を使おうかとも思ったのですが、古いSF同人誌に「≪NULL≫」というタイトルのものがあったようなので止めました。「《NULL》」という文字列、どこかでデータとして使ったりするケースがあるでしょうか…(あったら教えてください。別の考えます。)
もし、「《NULL》」をどこかでデータ・名称として使っているとかこっちのほうが良いよなどありましたらお教えいただけると嬉しいです。
2件のコメント
コメントをどうぞ →