「文字」です。「文字コード」ではありません。はい。タグに「文字コード」を入れたのは、そうでもしないと人目に付かないと思ったからです。スミマセン。
思いっ切り文系の知識ですが。
なんでこんなものを記事にする気になったのか。たかが文字、されど文字… どころではない深くて大きい、それこそ情報技術の根源に関わるような問題が、そこにはあるのです。
文字とは何か
文字とは何でしょう。
プログラマにとって分かり易い定義を考えれば「文章を書く際の最小単位であり、文字(及び記号)の集まりとして文章を記述する」とでも言えるかと思います。実際、プログラミングに関してはそういう理解で十分だと思います。
はい。何の問題も無いように見えます。しかしですね、よくよく考えると、最も基本的な所で大問題が控えています。
文字の認識: 切り出し
文字に符号を割り当てる以前の話です。
そもそも文字はどう認識されるのでしょう。どう認識するのが正しいのでしょうか。専門用語はわかりませんが、要するにどの範囲が一文字であるのか、文字と文字とを区切って切り出す、その認識と操作はどのように判断されるのでしょう。
実はこれ、大問題です。例えば漢字なら、偏(へん)と旁(つくり)に真っ二つに分けられるような文字があります。文字の間の空白を頼りに認識する、という訳にはいきません。
逆に、俗に言う続け字の問題もあります。日本語の手書き文字なら行書や草書、それだけでなく世界各国の言語で筆記体の文化があります。印刷に関しても続け字を規格化した連綿体というものがありまして、これは日本語の話。英語なんかだとスクリプト体、そうでなくても合字(リガチャー)というものがあったりします。つながって目に入った図形を、どうやってバラして文字の並びと認識するのでしょうか。
これは文字認識の問題というだけでなく、文字表示でも問題になります。続け字を印刷で再現したい場合はどうしましょう。コンピュータ的には別の文字として扱うべき?でもそうすると文字列検索の時にどう判断するのが正しいでしょうか?
という訳で次の問題、文字の等しさの話題になります。
文字の認識: 等しさ
2つの文字あるいは文字列が提示された時、それらが等しいのか異なっているのか、どう判断されるのでしょうか。
英語のアルファベットだけを見ると簡単なんですけども…いや、簡単でもありませんね。英語の場合、大文字の I と小文字の l と数字の 1 とか、大文字の O と数字の 0 とか。これらの文字を区別するのは、時に極めて難しい事があります。これを1箇所だけしくじった為に月ロケットが発射されなかった、という逸話まであります。
何を下らない事を言ってるのかと一笑に付す訳にはいきません。例えばUnicodeは、この問題を悪用(?)してCJK統合漢字などという暴挙に出た訳でして。
現代の日本語の場合は更に複雑です。同じ文字として扱うのが正しいのか、異なる文字として扱うのが正しいのか、極めて悩ましい文字群があります。
旧字体と新字体
漢字には旧字体と新字体とがあります。人名漢字もあります。渡辺さんの「辺」とか斉藤さんの「斉」とか、それだけでちょっとした研究になりそうなくらいのバリエーションがあります。
更に、「弁」なんかは旧字体と新字体の絡みでとんでもない事になっています。これは辨辯瓣瓣辦辮の6文字が合体しちゃったらしい。この6文字は全部意味も違っていて、完全に別の文字でした。辨理士と辯護士は違う、とかいう話です。一体誰が血迷ったんでしょうね。べんべんべんべんべんべん。
似て非なる漢字
完全に似て非なる漢字もあります。すで半ば、おのれは下に付きにけり、みは皆付きて、いきこしと読む。とかね。已己巳の3つの漢字は全部違う文字です。他にも、冒と昌も違う文字ですし、未と末も全く違う文字です。井と丼とか、大と太と犬とか、力と刀と刃と匁とか、百と白と臼と曰と日と目と自とか。草書で書いた文字の場合は、本と東と車は極めて良く似た字形になります。崩し方によっては楽もそっくりになるようですね。そこまで達筆だと、書道の専門家でないと読み書きが全く出来なくなりますが。
草書などの崩し字は別として、楷書に関しては、日本人なら間違わないように徹底的に叩き込まれます。例えば太と犬の誤認識については、かの国民的名作漫画ドラえもんでもネタになった事があります。のび太が自分の名前を「のび犬」と間違って書いて、それがイジメの原因になる、という話でした。
決して軽視して良い問題ではありません。文字については改善する/しないという議論はあり得ませんが、だからと言ってぼんやりと聞き流して良い問題では無いでしょう。問題がある、せめてその認識だけでも、しっかりと持っておく必要があります。
書体によって変化する字形
書体によって字形が変わる事もあります。人とか入とかは最も分かり易い例でしょう。それでなくてもこの2文字は非常に似通った形をしていますが、書体(あるいはフォント)によって形が少し変わるという特徴もあります。Windowsを使用している方、例えば「HG教科書体」で表示してみてください。
あるいは、少々わかりにくいですが八とか分とかの例もあります。Windowsで「HG創英角ゴシックUB」や「HG教科書体」などで表示してみてください。
この、微妙にわかりにくい方向だと、平仮名の「さ」「き」もフォントによって字形が変わります。続くか切れるかの違いがあります。と言われてもわかりにくいと思いますが、表示して見れば一発で理解できるでしょう。面白い事に、この切れ方の違いは「ち」では発生しません。
思考放棄するワケにもいかない
いや〜なんでこんな面倒臭い事を考えなきゃいけないの?日本人としてとりあえず読めりゃ、それで生活するのに困らないし十分でしょ? …と思考放棄したい気持ちはわかります。わかるんですけどね。そういうワケにもいかない問題があります。
役所の正式な文書はどうなのよって話なんですけども。それも人々の生活に近い所でスッタモンダがあるから始末が悪い。
さいたま市の「さ」の文字は、2画の続けて書く文字と、3画の離して書く文字のどちらが正しいか教えてください。こんなのが「よくある質問」だってのはどうなのかと私は思うのですが。
これは実際に市役所に取材したブログ記事がありました。古いですが、ちょっと面白かったのでリンクを張っておきます。さいたま市の「さ」の不思議 ~ さいたまの「さ」はやさしさの「さ」?
別の形で、東京都葛飾区で大問題になった事もありました。寅さんや両さんで御馴染みの、あの葛飾です。書体問題でもない、似て非なる漢字問題でもない、ちょっと特殊な事例です。
JISコードは過去に何度か変化があったんですけど、覚えてる方はいらっしゃいますかね?その際、何を勘違いしたのか、文字を削除したり字形を変えたりした事があったんです。それに巻き込まれたのでした。「葛」の字の不思議
書きたい事はまだまだありますが
思い付きで書き始めた記事でした。ホントはもうちょっと要領良くまとまるかと思ってたんですけども。思い付くネタを片っ端から書き出していたら、とんでもない分量になりました。ゲンナリ。
ここらで一度区切ります。いずれ続編を書きます、と言いたい所だけどいつになる事やら。今時の技術とは関係無いんで旬とかありませんしね…