« Maxthon(MyIE2)をインストールしたら、IEのユーザーエージェント名も勝手に?変更されてしまった・・・ | トップページ | Mac版Netscape7.0.2→7.1 退化?の謎を究明する(文字化けの原因) »

2005/06/20

一週間の歌? 文字化け注意報(機種依存文字にご注意)

人力検索サイトに上のような質問が登場しました。(日)=1、(月)=3、(火)=4、(水)=7、(代)=27、(木)=?

これは難問です。日曜日は1で、月曜日は3、火曜日は4、水曜日は7になるものは、木曜日は何だって、脳内エステIQサプリもびっくりです。

というのは、もちろん冗談で、これはMacで見ると文字化けしていますよという例です。実際は、Windowsから見ると質問者の真意が分かります。

●はてな ①=1、②=3、③=4、④=7、⑫=28⑤=?
http://www.hatena.ne.jp/1119196949

というものです。○数字が、曜日のように文字化けしています。理由は後述します。

Windowsで見た時に、この質問の真意がはじめて分かるようになっているのですが、この回答は、一応、6ということになっています。

たとえば、12の約数は、1、2、3、4、6、12ですが、その合計は1+2+3+4+6+12=28です。同様に、4の約数は1,2,4で合計が7になります。したがって、5の場合は約数は1と5ですから、回答は6となるという訳です。

ほとんどの方がこの回答にたどりつく中で、現在hatenaで最も注目を浴びている?j***さんが112という回答を書き込みました。誰もが例によって、早撃ちガンマーの間違いみたいに捕らえているのかもしれませんが、元々この問題の正解はいくらでもありそうな気がします。

なぜなら、「『?』にあてはまる数字は何か?」という質問でもありませんし、ましては、「『?』に当てはまる自然数は何か?」という質問でもありません。実数と書いていないので虚数でいいのかもしれない。数字とも書いていないので、極端な話、「abc」でも「xyz」でもいいかもしれない。数字に限定するにしても、自然数という縛りがなければ、無数に解は存在しそうです(数学の世界からしばらく離れているので確証はありませんが・・・)。たとえば、

x=1  → y=1
x=2  → y=3
x=3  → y=4
x=4  → y=7
x=12 → y=28
を満たす6次関数を複数作成できれば、x=5の場合に、yの値もいろいろ変幻し、その中には112になる式もあるかもしれません?(繰り返しますが、未検証。)

いずれにせよ、j****さんがMacユーザーであるならば、全く責められるべき珍回答でも何でもないように思います。しいて言えば、質問者の方の質問の書き方に問題があります。

(Macで見ると日曜日に1個だったものが月曜日に3個に増え、火曜日にはさらに4個になりました。水曜日にはさらに増え7個に。そして、ついに代表取締役に就いて28個になりました。では、木曜日の時点では何個だったでしょうか?)と見えなくもありません。もちろん、冗談ですけど。

この○数字は機種依存文字といって、WindowsとMacで見え方が違う文字です。そのため、Macでは文字化けします。掲示板などさまざまな環境の方が見るページでは使ってはいけないとされている文字です。機種依存文字については、

●ウェブマスターのための文字化け講座「機種依存文字とは?」
http://www.shtml.jp/mojibake/machine.html

をご参照ください。

(ただ、これらの○数字が機種依存文字となるのはShift_JISやEUC-JPのサイトであり、ココログのようなUTF-8のページでは、「「①=1、②=3、③=4、④=7、⑫=28⑤=?」も文字化けしていないはずです。hatenaで文字化けしたのは、hatenaのサイトがEUC-JPであるためです。TigerのeMac+Safari2.0、IE5.2.3、Opera7.5.3でUTF-8では文字化けしないことを確認しました。別稿「いわゆる機種依存文字とUTF-8」もご参照ください。なぜかMacのFirefox1.0.4及びNetscape7.1でだけ文字化けしました。該当ユーザーの皆様ごめんなさい。)

hatenaのような大規模サイトでは、機種依存文字が入力された場合に、エラーではじく、もしくは代替文字に置き換えるなどのプログラムを入れていてよさそうなものですが、それがなされていないんですね。

----------------------------
最後に、話が全くそれますが、このhatenaの質問を見ていて思い出したことがあります。それはあるCMです。

詳細は違っている部分も多いと思いますが、「(ナレーター)日本では例えばこうなっていることが多い。1+1=□。でも、海外では、□+□=5。こんなふうになっている」みたいなの覚えている人いません。とかく日本人は自虐的で、詰め込み教育だ、偏差値だとわめいて、教育のあり方を批判してきました。そのうちの一つの例としてテストの作り方から、海外のほうが、より柔軟な子供を作り出す、というような、単純な批判の安直な例として、この「1+1=□」と「□+□=5」の"差"です。

後者は、解がいくつもあり、子供の自主性を重んじる良い教育ですか? そういう方に聞きたい。じゃ、後者はいったい、何個解があるとお思いですか?

1+4=5
2+3=5
3+2=5
4+1=5
の4つでしょうか? 0+5=5と5+0=5も入れて6つでしょうぁ?

でも、CMには質問が書かれていなかったか、「□の中を生埋めよ」という単純な質問でした。

であれば、この解は、

(3+4)+(4-6)=5で、左の□は「3+4」で、右の□は「4-6」でもいいはずです。自然数とは書いていません。恐らく小学一年生ぐらいのテストでしょうから、こんなのありえないかもしれませんが、実際にこういう回答を書いた生徒がいたら、バツにできないにしても、ちょっと変わった生徒と認識されてしまうでしょう。だから、海外の教育が自主性を重んじているとかいうのは幻想かもしれないんです。

極端に言えば、四角の中に「Σ」や三角関数が出てきても良いことになってしまうだろうし、積分の記号が出てきてもいいでしょう。そのときに小学校の先生が「俺は高校の数学は分からないよ。どうせ間違っているだろうし、これはそもそも自然数のことに決まっているじゃないか。この子は、きっと将来苦労する。ここで修正してやらないといけないから、バツにする。」とした場合、これは良い教育なのでしょうか?

私がなぜ、このように熱弁を振るうかといいますと、実は、

この「自然数に決まっているじゃないか」という類の思い込みがクロスサイトスクリプティングの脆弱性や価格コムの改竄事件で取りざたされた「SQLインジェクション」の原因と結びついているように

思えてならないからです。

  • 年齢を書くフィールドだから数字を書くに決まっていますか?

  • メールアドレスの欄にHTMLタグを入力するような馬鹿はいませんか?

  • ユーザーエージェントを詐称して、HTMLタグを入れている馬鹿はいませんか?そういう馬鹿がいるにしても、せいぜい、「<font color=red>(≧∇≦)ノ彡</font>」ぐらいだろうと言い切れますか? Javascriptを混入させている可能性はありませんか?

  • フィールドのサイズはmaxlengthを100にしているから100文字しか入力できないと断定できますか? あなたは□+□=5の□のサイズで、回答を絞ってしまうタイプの人間ではありませんか? □がどんなに小さかろうが、□が自然数であるという縛りがなければ、解は無限です。縛りを作るのがプログラマーの仕事ではないのですか?

  • 電話番号にHTMLタグを入力する馬鹿はいませんか?

  • ラジオボタンのvalueに設定していない値がPOSTされてくる危険性は本当にゼロなのですか?
  • プルダウンメニューだから固定値しかPOSTされえませんか? SQL文がinsertされる可能性はないのですか?
プログラマーが自ら、電話番号に使えるのは数字とハイフンだけ、とか、あるいは何桁でなければならないとか決めて、それに合わないものをはじくべきなのであって、ユーザーの良心とか常識に頼っている限り、セキュリティは保てません。

電話番号の欄にユーザーがHTMLタグを書いた瞬間、ブラウザから墨が噴射されて、ユーザーがそれ以上、入力できなくなるようなすごいシステムを開発しないならば、サーバ側で受信したデータを徹底的にチェックして、こちらが想定している値かどうかを調べる必要があります。

年齢を書くフィールドのmaxlengthが2だからといって(100歳以上の人ごめんなさい)、HTMLタグを入力するのは不可能ですか? 都道府県名の選択肢はプルダウンメニューにしているから、HTMLタグを入力(といよりPOST)される心配はありませんか?もし、本気でそう思っているならおめでたい人です。

小学校のテストで、数字を入れるところに数式を書いてきた秀才がいれば、バツにしてそれで終わりということも可能かもしれませんが、セキュリティはそうはいきません。ハッカーや悪意のあるユーザーがこちらの想定しているとおりにだけ入力してくれますか? こちらが想定していないことをするからセキュリティホールというのであって、こちらが想定していることをやっているのに誤作動したら、ただのバグです。

でも、待てよ。そう考えると、やっぱり「□+□=5」の問題はこういう問題を考えるための良い問題であり、「4+1=5」式な発想法しか持っていないために、「5」という導き出したい結論があった場合に、「4+1=5」しか想定できなかったり、頑張っても、「1+4=5,2+3=5,3+2=5,4+1=5」の4種類と考えてしまうのかもしれない。「(7+2)+(4-8)=5」の可能性は考えずに。ということは、やっぱり日本の教育は間違っている?

支離滅裂ですね。ぎゃはは。暑さのせいかも・・・、と暑さのせいにする(終)。

|

« Maxthon(MyIE2)をインストールしたら、IEのユーザーエージェント名も勝手に?変更されてしまった・・・ | トップページ | Mac版Netscape7.0.2→7.1 退化?の謎を究明する(文字化けの原因) »

コメント

今さらですが どうやらMacOSX10.4TigerのIEではOsakaフォントを指定している場合ちゃんと表示されるようです。
私が調べたわけではないので確信はできませんが・・・

投稿: MacIE使用者 | 2005/09/30 16:03

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/67411/4632424

この記事へのトラックバック一覧です: 一週間の歌? 文字化け注意報(機種依存文字にご注意):

« Maxthon(MyIE2)をインストールしたら、IEのユーザーエージェント名も勝手に?変更されてしまった・・・ | トップページ | Mac版Netscape7.0.2→7.1 退化?の謎を究明する(文字化けの原因) »