2007年02月08日
◆ 文字使用の指針2
前項(文字使用の指針1)では、「どの文字を使ってよいか」という話をした。文字コードは先に決まっており、そのあとで使える漢字の範囲を決めた。
一方、本項では逆に、「どの文字コードを使うべきか?」という話をする。
シフトJIS や unicode などのうち、どの文字コードを使うのがいいか?
( ※ 本項は、話の順序の都合で上記の日付になっているが、
実際にこのブログで公開したのは 2007-03-13 である。) ──
文字コードは、どの文字コードを使うべきか? ── この問題については、素人の俗説がある。
「シフトJISなんか時代遅れだよ。これからは unicode だよ。 unicode を使えば問題なし」
という俗説だ。しかし、これが間違いだということは、別項で示した。
→ シフトJIS と unicode
要するに、 unicode といっても、単一の文字コードではないから、どれか一つに決めるわけにはいかない。どれに決めても一長一短だ。理想的には南堂私案がいいが、現状ではまともなものは一つもない。(一長一短なので。)
ただ、そういう結論だと、現状ではどれも取れなくなってしまう。それでは実用的な結論でない。そこで、別項のことを基本として踏まえた上で、「(最善ではなく次善の策として)現状ではどれを取るべきか」という実用的な結論を示す。
──
ではいよいよ、結論を示そう。
最初に、要旨をおおまかに言えば、「場合分け」である。万人に共通する形で「これがいい」と一つのものを示すことはできない。各人の環境によって、ベストのものがそれぞれ決まる。ある人にはこれ、ある人にはそれ、というふうに。
では、どういう場合にどれを取るべきか? そういう場合分けを、細かく示す。
なお、文字コードの選択肢は、次の通り。
・ シフトJIS (OSによっては、別の互換文字コード)
・ unicode
・ UTF-8
・ UTF-16LE
・ UTF-16BE
※ 上記の三つを区別しないで「 unicode にする」というのは素人。
※ UTF-32 は、選択肢には含まないでおく。
──
(I)執筆者 ≠ ファイル作製者
最初になすべき区別は、文章の執筆者とファイル作製者が同一か否か、ということだ。
この区別で、両者が異なる場合がある。それについて考えよう。
「執筆者 ≠ ファイル作製者」というふうに異なるのは、次のような場合だ。
・ 印刷所に入稿した原稿を処理する。
・ チームリーダーにメンバーが業務用の原稿を送付する。
・ 学術論文を学界に投稿する。
これらの場合には、文字化けや文字消失が最も怖い。そこで、シフトJISよりも unicode を使う方がいい。それなら、多くの学術記号なども使える。
一般に、日常連絡ぐらいならばシフトJISでもいい。だが、業務用となると、多様な文字の利用が必要となることも多いので、シフトJISでなく unicode を使う方が好ましい。
では、その際のエンコードは? 実は、特に指定しなくてもいいだろう。
unicode ならば、どれだって、ファイルは相互変換が可能になる。UTF-8,UTF-16LE,UTF-16BE のいずれでも、MS-Wordで読み込める。そのあとはMS-Word上で一括して処理できる。
結局、「どれでもいいから unicode で」というふうにするといい。
ただし、ぶっちゃけて言えば、「MS-Wordのファイルまたはテキストファイルで(unicode も可)」と要求するのが一番手っ取り早い。そのテキストファイルとしては、シフトJISでも unicode でもいいわけだ。
なお、ファイル形式が統一されないと、文書の統一が取れないで困る、というような場合もあるだろう。それは、出来上がった文書を処理するのではなく、逐次的に文書を形成していく場合だ。
その場合は、ファイル形式がどうのこうのというより、アプリそのものを共通化するしかない。これはグループウェアの問題である。文字コードよりも、アプリの問題となる。アプリがひとつに統一されれば、もはや文字コードの問題もなくなる。
例。Googleオフィスを使って、ネット上で共用文書を作成する。
(II)執筆者 = ファイル作製者
文章の執筆者とファイル作製者が同一である場合がある。これが大半だろう。実際、個人で文書を作成して、自分のパソコンに保存しておく場合には、「執筆者 = ファイル作製者」となる。
では、この場合には、どうするか? 場合ごとに異なる。
まず、この場合分けをする根拠を示す。それは、次のトレードオフ関係だ。
「文字種と、利用の便利さは、背反関係にある」
具体的には、次の通り。
・ シフトJIS …… 文字種は少ないが、利用は容易。
・ unicode …… 文字種は多いが、利用は面倒。
したがって、「文字種の多さ」と、「利用の容易さ」の、どちらを優先するか、という問題になる。その問題への解答は、人それぞれとなる。
(1) シフトJISを使う方がいい人
一般の人は、シフトJISの方がいいだろう。
まず、デメリットは、次の通り。
・ 文字種が少ない。難読漢字や記号を使えない。
しかし、これは、現状通りだ。使えなくても、とりあえずは「〓」で代用しておけば、それで済むことが多い。たとえば、「鴎」の正字は、「〓」(區鳥)と書いておけば、それで済むことが多い。あるいは、略字で採用しておく、という手もある。
どうせ自分用の文書だから、それでも構わない。学界に提出する論文なら、 unicode を使う方がいいだろうが、それは(I)であるから、また別の話だ。その場合のみ unicode を使えばいい。通常は、シフトJISで済ませても、たいしてデメリットはない。
一方、メリットは、次の通り。
・ 多くのファイル形式で文字コードを統一できる。メモ原稿もHTMLもシフトJIS。
・ したがって、すべてを grep 検索の対象にできる。検索に便利。
・ ファイルをどのアプリでも開ける。メモ帳でもブラウザでもOK。
・ どんな環境にもたやすくデータ移行ができる。(メモリカードや通信を経由。)
まとめて言えば、とにかく扱いやすい。 unicode のHTMLファイルだと、「エディタで開くたびに文字化けする」という問題が起こるエディタが多いが、そういうハメにもならない。(この問題が起こらないエディタもあるが、それはそれで機能面で劣っていて使いにくい、ということがあったりする。)
以上をまとめて言えば、「文字種の制約はあるが、とにかく使いやすい」となる。ゆえに、普通の場合には、シフトJISに統一するのがお勧め。例外的な場合のみ、 unicode を使う。
私の場合はどうしているかというと、下書き原稿はシフトJISとエディタで記して、正式の提出文書はMS-Wordと unicode で書く。こういう方式でいいだろう。その場合、パソコン中の自作ファイルのほとんどはシフトJISになり、一部の提出用文書だけがMS-Wordと unicode になる。
なお、ネット上で公開する文書は、原則としてシフトJISの HTML である。特別な場合には、UTF-8とUTF-16LE,BE を使うが、 そういう場合は稀だ。
(2) unicode を使う方がいい人
次の二通りの場合は、 unicode の方がいいだろう。
(i) 多様な文字種を使う人。 (漢字や記号で特殊な文字を使う特定分野の専門家。)
(ii) パソコン初心者
(i) は当然だろう。多様な文字種を使うなら、 unicode を使うしかない。
なお、UTF-8とUTF-16LE,BE のどれを使うといいかというと、どれを使っても一長一短だ。別項(シフトJISと unicode )で述べたように、「ネットでは UTF-8が優勢、パソコン(Windows)では UTF-16LEが優勢」となっている。ついでに言えば通信では UTF-16BE が優勢かもしれない。とても一つに決まらない。(もし決まれば問題はなくなる。)
となると、あまりにも安直な結論ではあるが、次のようにするのがいいだろう。
「自分のよく使うアプリの設定に従う」
これだと自動的に文字エンコードの選択肢が狭まる。
・ MS-Word ならば自動的に UTF-16LE。
・ メモ帳も UTF-16LE。
・ HTML エディタなら UTF-8。
・ 高機能エディタならば指定は任意。(UTF-8とUTF-16LE,BE)
結果的に、次のようになるだろう。
・ 普段はネット公開用文書を書く人ならば UTF-8。
・ 普段はネット公開用文書以外を書く人ならば UTF-16LE。
後者は、自分用の原稿を書く人や、社内業務用の原稿を書く人などだ。社内業務では、文書はブラウザで開くのでなく、メモ帳やエディタで開くから、UTF-8よりも UTF-16LE が好ましい。(メモ帳で作成した場合の文書は、 いわゆる「 unicode テキスト」となる。)
では、それで話は済むか? いや、済まない。現実には、UTF-8とUTF-16LE,BE のどれを選んでも、ファイルには複数の unicode エンコードが混在してしまうだろう。どれかに統一するなんて、まず無理である。自作の分ならば統一できるが、他人の作成した分は統一できない。
というわけで、「自作の分の多くをなるべく統一に近づける」というぐらいのことしかできない。ま、UTF-8でも UTF-16LE,BE でもなんでもいいから、とにかく、あまりバラバラにしないようにしましょう、としか言えませんね。
unicode を選択した場合は、文字コード(エンコード)の統一は諦めるしかないでしょう。
なお、「それじゃ、シフトJISならば統一できるか?」と言われれば、やはり「できない」と言うしかない。その場合も、unicode についての統一は無理だ。結局、統一なんて、ハナから無理だ。せいぜい、自作の分について、「なるべく統一する」ということしかできないわけだ。
(ii) は、解説を要する。
まず、(1) では、「原則がシフトJISで、特別な場合は unicode 」というふうにした。
しかしこれには、使い分けを要する。一方、パソコン初心者は、使い分けなんかできない。また、エディタのインストールもできない。また、grep も使えない。……こういうパソコン初心者なら、結論はただ一つ。「MS-Wordだけを使う」ということだ。これなら、文字コードを何ら意識せずに、MS-Word上で出せる文字だけを使えばよい。(ま、そのなかには、MS-Word専用の特殊文字があったりするのだが、そこまでは面倒を見きれない。)
で、MS-Word形式のまま、あちこちに頒布すれば、それはそれでいいだろう。受け取った方はどうかというと、「ウィルス混入の恐れ」なんていう問題にさらされるが、相手は素人なんだから、何を言っても無駄。受け取ったファイルをワードパッドで開いて、読み取れる文字だけ読み取ればいいだろう。あるいは、「ワードビューアー」というような閲覧専用のソフトもあるから、それを使ってもいいだろう。(それならウィルスは関係ない。マクロを実行できないからだ。)
というわけで、(第二項の)初心者もまた、 unicode だけを使っていればいい。ここでは、文字コードがどうのこうのというより、MS-Wordだけを使っていればいい。ネットで公開するときも、自動的に UTF-8 か、または数値番号方式になるはずだから、それはそれでいい。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
まとめ。
以上の全体を見ると、あれこれと考えることが必要なのは、シフトJISをメインに使う普通の人(パソコン初心者以外)となる。
(1) のように、シフトJISと unicode とを使い分けする人は、いろいろと注意が必要だろうが、ざっとまとめると、次のような使い分けになりそうだ。
・ 通常の文書
…… シフトJISのテキストファイル。(出ない文字は 〓 )
・ 提出用の文書
…… Word文書 (unicode)
・ 社内の共用文書
…… Word文書 (unicode)(書式もあり)
・ ネット用のHTML
…… 人によりけり。文字種が多ければ UTF-8 に統一する。
文字種が少なければ、原則がシフトJIS、例外がUTF-8。
(2) のような人は、選択の余地なく、 unicode になる。そのあとどうするかは、上記の話を参照にして、UTF-8,UTF-16LEから選ぶことになる。
unicode を選んだ場合、 unicode を使いながら、 unicode の検索をすることも可能だ。たとえば、sakura エディタは、MS-Wordの unicode ファイル(UTF-16LE)を grep 検索できるということだ。(未確認だが。)
また、grep のような行単位ではなくファイル単位でなら、通常のファイル検索もできるだろうし、パソコン内でGoogleふうにインデックスを付けて検索することもできるだろう。
unicode を選択した場合、使いやすさは低下するので、パソコンの機能を徹底的に使いこなすことはできないだろうが、ひどく不便だというわけでもない。仕事で原稿執筆を業務としていない人なら、これでもいいだろう。
【 職種別ガイド 】
・ 原稿執筆を業務にする人 (学者・ライター・作家 etc.)
…… (1) のようにするといい。パソコンを十分に使いこなす。
・ 原稿執筆を業務にしない人 (上記以外の人。営業職など)
…… (2) のようにするといい。どうせ原稿書きなんかしないのだから。
・ 原稿執筆を業務にするパソコン初心者 (パソコン音痴の学者など)
…… (2) のようにするといい。(1)のようにしたくてもできない。
文字コードのことは考えず、MS-Wordだけを使っていればいい。
(ときどき文字消失のトラブルに遭遇するが、仕方ない。
ただ、難読漢字を使わなければ、特にトラブルもなしに済む。
この件は、下記に示す。)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【 注意点 】
「多くの文字を使うなら unicode を使えばいいんだな」
と早合点する人が多いだろうが、実を言うと、かなり注意を要する。
「多くの文字を使うなら unicode を使うしかない」とは言える。しかし、使うしかないということと、使っていいということとは、異なる。比喩で言えば、砂漠で泥水を見つけたら、せっぱつまっているので泥水を飲むしかないが、泥水を飲んでも大丈夫だということにはならない。
unicode も同様だ。unicode を使うしかないとしても、 unicode を使って大丈夫、ということはない。たいていの文字は大丈夫だが、一部の文字ではトラブルが起こることがある。次の二点だ。
(a)文字消失
JIS第4水準の文字、サロゲートペアを使う文字などでは、文字消失が起こることがある。自分の環境(OSとアプリ)では表示できていたからといって、他の人の環境でも表示できるとは限らない。特別な文字は消失していることがある。安心できない。
(b)アプリ・エラー
アプリによっては、特殊な文字を含むファイルを開けなくなることがある。たとえば、「文字講堂」で公開している「 unicode の記号」というファイル(uni-sign.doc)がある。(圧縮ファイルのうちの一部。)
このファイルは、Windows98 上では MS-Wordでも一太郎でもワードパッドでも正常に開ける。(確認済み。)
ところが、WindowsXP SP2 のワードパッドでは開けない! アプリケーションエラーが起こって、ちゃんとした unicode ファイルを開けないのだ。
このファイルは別に私が勝手にバイナリを操作して作ったものではなくて、ワード上で普通に作成した普通の文書である。もちろん、Windows98 上では何も問題なく開ける。にもかかわらず、WindowsXP SP2 のワードパッドでは開けない。……こういうとんでもないことが起こるのだ。
ま、これは、MSのバグなのだろうが、こういうふうにバグによる問題が起こるというところに、 unicode の怖さがある。
実は、この問題は氷山の一角であって、 unicode に正常に対応していないアプリは非常にたくさんある。 unicode というのはあまりにもごちゃごちゃしているので、アプリの担当者の努力が追いつかなくなってきているのだ。
とにかく、 unicode を使う限り、以上の (a)(b)のような危険性が常につきまとう。「 unicode なら大丈夫」などと思うのは、甘すぎる。絶対に安全と言えそうなのは、シフトJISのファイルだけだ。unicode のファイルに関する限り、危なっかしいことこの上ない。あなたの作成した文書が、他人にも開けるという保証は、まったくない。もちろん、将来のあなたにとっても、同様だ。OSやアプリが変われば、文書を開けなくなる可能性はかなりある。ま、その場合には、OSやアプリを変えれば開けるので、大きな問題はないかもしれないが、そうは言っても、やはり、いろいろと問題があるということは、留意しておいた方がいいだろう。とても安心できる状況にはない。
(c)ファイル名の問題
ファイル名に unicode の文字を使うと、他人の環境では文書を開けなくなることがある。WindowsXP 以降ではともかく、それ以前では問題が起こるようだ。WindowsXP でも、サロゲートペアを使っている文字だと、開けないかもしれない。( Vista で作成した文書。)
ここにも危険がひそんでいる。 unicode というのは、落とし穴だらけのようなものだ。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
《 余談 》
「どれもこれも、帯に短し襷に長しだな」と思う人が多いだろう。まさに、その通り。どれもこれも一長一短だ。
で、だからこそ、そのすべてを解決する文字規格が待たれる。そして、それは、存在する。「南堂私案」である。これについては、シフトJIS と unicode の箇所で述べたとおり。理想的には、それを取ればよい。
ただし現状では、理想のものがない。だから、「理想のものが(提案されているが)まだ制定されていない現状で、とりあえずはどうするか」という問題を、本項では述べたわけだ。
過去ログ

論文がプレーンテキストで間に合う人はいないと思いますが。
たいていの学会ではPDFもしくはMS Word形式での提出を
受け入れています。
> ファイルには複数の unicode エンコードが混在してしまうだろう
「エンコードの違うファイルが混じってしまう」のほうがいいでしょう。
例の記事のように誤読されかねない。