第4話 アイテム増殖

 多少のトラブルはあったがドンマイ。なんとかはじまりの町にやってきた。管理者用ポータルが使えるからといって終盤の町とかにいったらその場で詰んでいたかもしれない。はじまりの町は無難なチョイスだったはずだ(腹にある服の穴からそっと目をそらす)


 町に入るのに特に検問があるでなく、税金を納める必要もなかったので助かった。しかし、金がない。あのお嬢さんにたかっておけばよかったか……? あるものと言えば、剣がひとつ。暴漢の置き土産であった。


「こいつを売るとするか……」


 こう治安が悪そうな世界において、武器というのは重要度が高そうな気もするが、そうは言っても金がないことには始まらない。なんかバグってHP多いみたいだし、そうヤバいことにはならんだろ。きょろきょろとしながら町を散策しているとどうも周りから奇異の目で見られているということに気づく。


 まあこの服だしな。きょろきょろしてて挙動不審だったしな。いかんいかん。そんな目でみなさんな。よそ者には冷たいってやつなのかな。地味に精神にくるぜ……。そうして、とぼとぼ歩いていると見つけた。武器屋だ。たのもー。


「おやじ、これを買ってくれ」

「なんだぁ? 見ない顔だな。博打で素寒貧すかんぴんにでもなったか?」


 博打で素寒貧すかんぴん……。手ぶらで持ち物は剣だけ、そしてその剣を売ろうとしている……。なるほど……。博打で素寒貧すかんぴんというのは言いえて妙だ。このシチュエーションならその推理で9割9分間違いない。つまり俺はそういう残念なやつに見えるってことか……。精神に追い打ちダメージ! ツラい! もうやめて!


「うるせえ! 買ってくれんのか!? どうなんだ!」

「ふん……。そうだな……。こいつなら10セステルティウスってところだな」


 10セステルティウスって適正価格なんだろうか。


「なあ、ここに並んでる剣、買うとしたらいくらだ?」

「ああん? 金持ってんのか? そいつなら20セステルティウスだ」


 そんなにモノは変わらなさそうだが倍額……。とはいえ、こっちのエモノは手入れもされてないからな。半額で下取りなら十分か?


「いや剣を買い戻すならいくらぐらいいるのかと思ってな」


 咄嗟の言い訳としてはなかなか自然な返しではなかろうか。そう思ったんだが……。武器屋の親父はやれやれと呆れた顔で首を振る。


「剣を売った金でもうひと勝負して、負けた分を取り戻そうって考えなんだろ? そういう奴が買い戻しに来た試しはねえよ。やめときな」


 ちっがう! 俺は博打で素寒貧すかんぴんになって剣を売りに来た残念な奴じゃねーよ!


 クソ親父めっ。とりあえず路銀が手に入ったところではあるが、手ぶらはツライ。10枚のセステルティウス銅貨も直にポケットにinだからな……。ポケットに穴とかいうオチがつかないようにチェックしたぜ?


 町の人々をみると、皆なにかしらカバンを下げているな。いや、カバンというと革の上等なものをイメージするかもしれないが、ずだぶくろみたいなモノだ。時代設定は中世~近世ぐらいなんだろうか。建物の窓にガラスが入ってない程度には未開の世界のようである。あまり上等なものは望めそうにはないな。


 雑貨屋のような店をみつけたので店番のおばちゃんに声をかける。


「袋が欲しいんだが何かあるかい?」


 恰幅の良い、愛嬌のある笑顔のおばちゃんだが、どうにも笑顔が不自然な……ようするに営業スマイルという感じだ。おばちゃんは営業スマイルを崩さず、こちらを頭から足元までしげしげと眺めて


「金はあるのかい?」


 畜生! やっぱり博打で素寒貧すかんぴんのろくでなしに見えるのか!? ポケットからセステルティウス銅貨を1枚取り出して見せつける。

 おばちゃんは意外そうに少し驚いた表情をした。そんなに金がないように見えるか。まあ実際、剣を売るまで金なかったんだが。


「セステルティウス銅貨があるならこいつでどうだい」


 ちょっと質がいいやつを出してくれた。セステルティウス銅貨、意外と価値が高いのか? しばし逡巡していると


「他に必要なものはあるかい? 少しおまけしてあげるよ」

「なら、小さい袋とか紐とかあるか」


 おばちゃんはニコニコしながら小袋を3つと細い麻紐をひと巻きとり並べる。


「全部で14アスでいいよ」


 アスってなんだ。よくわからんが値引きしてくれるんならこれで良しとするか……? おずおずとセステルティウス銅貨を手渡す。


「堅実にやんなさいよ」


 余計なお世話だ! お釣りは2枚の小さな銅貨だった。これがアス銅貨なんだろう。1セステルティウス = 16アスってことか。




 買った頭陀袋ずだぶくろを袈裟懸けにする。ん? インベントリ風のUIが浮かび上がって見えた。中身がセステルティウス銅貨x9、アス銅貨x2、小袋x3、麻紐x1となっている。なるほどね。こういう感じか。インベントリの題字の部分が変更可能っぽく見える。「ずだぶくろ」の後ろに「あああ」と追加したところで止まる。8文字までか。文字は何が入れられるんだ?絵文字とかぶっこめるだろうか?


 『ずだぶくろ🤔🤔🤔』


 オタクはすぐ thinking face を使ってしまう。


┏【ずだぶくろ🤔?】━

┃??? x 55358

┃??? x 0

┃小袋 x 3

┃麻紐 x 1

┗━━━━━━━━━━


 キタコレ!


 サロゲートペアでバッファオーバーフローとか作りが雑すぎるだろ……。???ってなんだこれ。おそるおそる頭陀袋ずだぶくろから???を取り出す。


 『コエルロサウラヴスの羽』


 20cmほどの薄い皮膜。細い筋が扇状に入っている。骨? 羽といっても鳥の羽毛みたいなやつではない。なんだこりゃ。得体が知れなくてキモい。


 頭陀袋ずだぶくろを見ると


┏【ずだぶくろ🤔?】━

┃コエルロサウラヴスの羽 x 55357

┃??? x 0

┃小袋 x 3

┃麻紐 x 1

┗━━━━━━━━━━


 なるほど? 手に取るまでは未鑑定みたいなシステムか? 0個のほうの???は……取り出そうとするが取り出すことはできなかった。まあ、0個だからな……。


┏【ずだぶくろ🤔?】━

┃コエルロサウラヴスの羽 x 55357

┃小袋 x 3

┃麻紐 x 1

┗━━━━━━━━━━


 サロゲートペア範囲の文字を突っ込めば何か有益なアイテムを無限に入手できるかもしれないな。そいつを売れば金はいくらでも稼げそうだ。


 ん? 金? 俺の金はどこいった?



----------


 プログラマは文字数を数えることができない、なんてプログラマジョークがあったりします。コンピュータの中で文字は数字を振られて管理されています。近年ではもっぱらUnicodeが使われていて21bitの数字で文字を取り扱います。この文字に振られた数字が「コードポイント」なのですが、コードポイントがプログラムでそのまま扱われているわけではなく、UTF-8 や UTF-16 といった文字符号化方式で用いられています。


 21bitのコードポイントを、よく使われるものは短く、あまり使われないものは長く、と1byte ~ 4byte に変換するのがUTF-8ですね。一般的な漢字とかは3byteに、絵文字などは4byteになります。


 Unicodeができた当初はコードポイントが16bitでした。要するに65,536種類の文字を表すことができたんですね。この範囲に世界中のあらゆる文字を収納しようとしたわけですが、いかにも欧米人的発想で、漢字文化圏の人間が聞いたら「たかだか6万で足りるわけないだろ!?」ってなるわけです。


 この欠点には早々に気づいて、Unicodeが21bitに拡張されたんですね。UTF-16符号化方式はこの歴史の影響があって、通常のコードポイントのものは16bit = 2byteで表現して、U+10000以降の範囲は2文字の組み合わせで表すという取ってつけたような拡張で対応したんですね。この2文字のペアをサロゲートペアと言います。2進数のbit配置でいうと 110110wwwwxxxxxx 110111xxxxxxxxxx という形で21bitをふたつの16bit文字にわけて表現します。


 というわけで、1文字のようにみえる🤔がUTF-16では2文字で表されたりするため、データベースやファイル出力などでbit数が決まってるようなやつだと溢れたりすることが生じるわけです。


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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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