戻る

半角と全角のちょっとした説明

 半角と全角って印刷結果に着目した表現で、しかも「文字としては同じ、幅が違うだけ」って発想なんで、ちょっと正確さには欠けるのかもしれないけど……。
 なにせこう書いた方がたぶんわかりいいと思うので、あえてこう書くことにするのさ……。

 で、ここで言う半角というのは、かな漢字変換プログラムを動かさない状態で打てるアルファベット(大文字・小文字)と数字、それからカタカナを指すことにします。全角はかな漢字変換システムを動かした結果出るようになる漢字、カタカナ、ひらがな、数字、記号を指すことにしましょう。

 まず、半角と全角とでは、コンピューターにとっては別の字だということを頭にたたきこんでください。人間が目で見る場合には1も1も同じく「数字のいちはなあに?工場の煙突」なのですが、コンピューターにとってはこれはまるで別の文字なのです。コンピューターは表示する文字に1つ1つ番号をつけて、普段はその番号で操作や管理をしているのです。たとえば「1」は番「1」は番というように。だから「1」と打つのと「1」と打つのとでは、人間から見れば「幅が違うだけで同じ数字」なんだけど、コンピューターから見れば全く別の字なのです。
 なもんですから、プログラムの設定なんかで数字やアルファベットを入力する時は、特段の指示がない限り半角で入力しておくのが無難です。前後に漢字があるのが想定される時は全角で打ってもそう困ったことにならないけど、(たとえば住所を漢字で入力する時はアルファベットや数字だけ半角にする必要はない。)その欄は全部数字とアルファベットというのであれば、半角にしておくのが間違いありません。
 WSNewsで最初に起動した時に聞かれる4項目。あれは全部半角のアルファベットと数字にしておくのが間違いありません。
「名前も……なの?」
 その疑問はごもっとも。で、これについて答えるためには、背景をさらに追加して説明させておくれ……。

 ネットニュースのシステムについては別途どこかで勉強していただくこととして、まあここでは、「文字のデータを何番、何番というように送っているんだ」と思ってください。で、ネットニュースの記事は「ヘッダ」と「本文」に分かれていて、そのヘッダの部分を見ていろんな動作をさせるんだけど……。  もともとインターネットの技術はアメリカから始まったのが多く、アメリカのコンピューターなりプログラムを前提にしている部分が多いんだけど、アメリカのプログラムには、文字のデータを「0番から127番まで」と決め打ちしているプログラムが結構あるんですよ。なんで0番から127番までかというと、アルファベットの大文字と小文字、それに数字をあわせても62個でしょ。それに一部の記号や制御のための情報を入れても128個もあれば余裕で間に合う。コンピューターの内部では2進法が用いられていて、01の組み合わせで表現するんだけど128個なら7桁で済む訳さ(7bitってことね)。一方機械としては8桁(8bit=1byte)で設計されている機械が多く、そうすると1桁(1bit)余るでしょう?その1桁を利用していろんな仕掛けをするプログラムがあって、いまだにそういうプログラムが残っているんですね。
 一方半角のカタカナはどうやっているかというと、0番から127番まではそのままアルファベット等に使うことにして、128番から255番までに割り当てたのですが、これは8桁目も使うってことになるんで、アメリカで作られたプログラムでは期待どおりの動作をしてくれないことになっちゃいます。まして隣り合った2byte=16bitすなわち16桁で表す漢字だといよいよあてになりませんね。
 そういう理由でかつては全部7bitの0番から127番までで書く、半角カタカナや全角文字は使わないという約束で、インターネットを使ってきた訳です。そのお約束は今も生き残っています。基本的には。

 でも実際は本文やfrom、subjectなどには漢字が使われ、それでも多くの場合きちんと表示されていますよね。これはなぜかと言うと、漢字を7bitの文字列に変換して送り、受け取った側も7bitの文字を漢字に戻すという技術が確立したからなのです。
 ところがこの作業に失敗したりすると……妙なことになってしまうんです。
 妙なことになったところで、それが本文であったり、subjectであったり、fromでも7bit文字で書くべきメールアドレスの部分が大丈夫であれば、「読めない」ってだけで終わりなのですが、fromについて言うと、メールアドレスの部分まで変になってもおもしろくないので、まだ漢字は使用すべきではないという判断を、私個人はしているのです。

余談
 shift-jisとかeucとかunicodeとか言うのは、まず第1に「文字に何番を振るか」その振り方の問題だったりします。振り方でたとえばプログラムが書きやすくなるとか、データ量をおさえて効率をよくできるとか、今までのものとの整合性とかが変わってくるのです。


戻る