2.〈 05 〉

 ここで「少し休憩を取りましょう。コーヒーカップがすっかり空ですから」ということになった。猪野さんがそういったのだ。

 アタシのスマホの時刻表示が14:14なんだから、余裕で1時間以上続いてることになるわね。


 今日は昼食を早めに軽くすませてきたものだから、今のアタシはちょっと小腹がすいている。だから紅茶のお代わりと、猪野さんお勧めのババロアを注文した。

 猪野さんの方は、コーヒーとヨーグルトシフォンだって。――まだ食う気かよ? もしかして、天国から見てくれてる熊吾郎お爺ちゃんが『あんなに食の細かった獅子郎が、よくぞここまで立派な男になったもんじゃわい。ふぉっふぉっふぉっ』とか笑いながら感慨に浸ってるかもよ?


「さて、先ほどまでの作業は、ある意味どうでもよかったのです」

「へ?」

「ここから文字化け現象の説明に入ります」


 なんだよ瓜坊、今までのは余興的な前置きってか?

 どうやら猪野先生による〈文字化け解説〉は、実はここからが本番らしい。

 もうしばらくお相手せねばならぬ。逃げるわけにはいかぬのだ。


「先ほど僕が作りましたテキストファイル〈a.txt〉に対して、パワーショベルコマンドの〈GetContentゲットコンテント〉、つまり内容を取得する命令を実行する際のエンコードとして、日本語環境ワインダーズの既定文字コードである〈Shift-JIS〉にするか、それとも〈UTF-8〉にするか、その違いによって1文字ごとのコードがどのように異なるのかを調べて画面に表示させます。そういう処理をするためのデモ用スクリプトをあらかじめ作っておきました」

「じゃあ、ここでパワーショベルの登場ってことですか?」

「その通りです」


 そういって猪野さんは、タスクバーにあるアイコンの1つをクリックした。

 すると〈Windersワインダーズ PowerShovelパワーショベル〉というタイトルの画面がパッと現れた。満を持しての登場だ!

 猪野さんの指がキーボードの上を軽やかに走り、スクリプトのファイル名が入力される。そして〈Enter〉キーをパンと叩いて実行。一瞬で処理完了!

 結果は2行で表示されている。


 E78D85 E5AD90 E9838E 獅子郎(UTF-8)

 E78D 8145 AD 90E9 838E 迯・ュ宣ヮ(Shift-JIS)


 あ、アタクシの知らない漢字が1つありますわよ。

 国語の塾講師をやってるアタシとしては、今すぐにでも手提げカバンから電子辞書を取り出して、〈こやつ〉を漢和辞典の『新字元しんじげん』で調べてやりたいところだ。

 でも、解説の途中だし大人しく続きを聞くことにしよう。


「最初の出力行は〈UTF-8〉の場合です。これは大森さんが先ほど推測なさった通り、3バイトずつで区切られています」

「そうですね」

「そして2行目は〈Shift-JIS〉の場合ですが、こちらは1バイトもしくは2バイトで1文字になります。先頭の2バイト〈E78D〉は〈とう〉という漢字に該当します。これは逃亡、逃走などに使うを意味する漢字〈とう〉の俗字で、チョウとも読みます」

「そうなんですか~。でも猪野さん、こんな難しい漢字よく知ってますね?」

「昨夜覚えました」


 アタシが知らない漢字を知ってやがると思ったら、なんだ一夜漬けかよ。

 でも知識をひけらかすような態度をしないのは偉いわね。だから許す。

 ていうか、説明を聞くことに専念しよう。集中して画面を見とかなきゃね。


 E78D85 E5AD90 E9838E 獅子郎(UTF-8)

 E78D 8145 AD 90E9 838E 迯・ュ宣ヮ(Shift-JIS)


「2行目の2個目〈8145〉は中点なかてんに該当します。そして文字コード自体がすり替わっています」

「すり替わっている?」

「はい。もう1度バイナリーエディターの方を見てください」


 E7 8D 85 E5 AD 90 E9 83 8E


「3個目が〈85〉で4個目が〈E5〉でしょう?」

「はい」

「ですから2行目の2個目は、この生データ通りであるなら〈85〉か〈85E5〉のどちらかになるべきなのです。それが〈8145〉にすり替わってしまったのです」


 E78D85 E5AD90 E9838E 獅子郎(UTF-8)

 E78D 8145 AD 90E9 838E 迯・ュ宣ヮ(Shift-JIS)


「おお、確かにすり替わってる!」

「こういうすり替わった文字コードのままで、新しいファイルとして書き込みますと、生データ自体もところどころになるわけです。そしてファイルを〈Shift-JIS〉で開きますとメチャクチャな表示になりますし、そうかといって〈UTF-8〉で開いても、ところどころ文字化けが起きてしまいます。つまり小説の本文が壊れた状態になるのです」

「ふうん」


 わかるようなわからないような、アタシにはちょっと難しいわ。


「それで、すり替わりが発生する原因についてですが、その辺りの仕組みは煩雑でもありますし、今日のところは詳しい説明を省かせて頂きます。そういうものだと思ってくださればよろしいかと」

「わかりました」


 ええ、もうドンドン省いちゃってください。

 アタクシとしましては「以下省略、解散!」でも構いませんことよ。


 E78D85 E5AD90 E9838E 獅子郎(UTF-8)

 E78D 8145 AD 90E9 838E 迯・ュ宣ヮ(Shift-JIS)


「2行目の3個目〈AD〉は半角の拗音〈ュ〉に該当して、続く〈90E9〉が漢字の〈宣〉で最後の〈838E〉が全角の拗音〈ヮ〉になります」

「そうですか……、ていうか、そうですね」


 この先も説明は続いた。例えば〈猪野獅子郎〉で試すと〈迪ェ驥守劫蟄宣ヮてきぇきしゅこうちつせんゎ〉になるそうです。ホント意味不明で読解できま

 だから〈獅子郎〉がいつでも〈迯・ュ宣ヮとうなかてんゅせんゎ〉になるとは限らないとのこと。ファイルの生データの並び方、つまりバイトストリームによって化け方もかわってくるということなの。ホント煩雑ですから、マサコちゃんついて行けま


 そういうわけで猪野さんは「詳しい説明を省かせて頂きます」といっておきながら、それでも長ったらしい話をしてくれた。裏返せばそれだけ親切丁寧だってことでもあるけれど……。

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る