2017年4月2日日曜日

NieR:Automata Original Soundtrackのヨコオタロウ氏のメッセージをshellとnkfでdecodeする

NieR:AutomataのOriginal Soundtrackに付属するブックレットに、ディレクターであるヨコオタロウ氏のメッセージが16進数で記載されており、(大抵の人間は)そのままでは読めない。

ネット上では既に多くの先人達が解読しており、URL等で使われる「パーセントエンコーディング」であると知られている。これをshell scriptとnkfを使ってdecodeしてみる。

なお、メッセージの内容については一切触れない。

実際の作業

* 写真を取る/スキャンする
* OCRで文字に変換
* 16進数文字列→日本語

最も面倒だったのがOCRで文字に変換する部分だった。写真の撮影のしかたが悪かったのもある。今回はGoogle driveにuploadしてOCRにかけ、目視で比較して修正するという方法を取らざるを得なかった。

一旦文字列になってしまえば後はnkfに掛けるだけである。

% echo '\n<16進数の文字列>' | fold -s2 | tr '\n' '=' | nkf -WwmQ

まず、foldで2文字ごとに区切る。次に、trで改行コードを'='に変換する。最後にnkfに文字列を渡してdecodeする。

参考URL

* [shell で4文字づつ切り出す方法 - Qiita](http://qiita.com/mapk0y/items/51e6765add9b79264714)
* [40.Linuxのコマンドから行うURLエンコード、URLデコード](http://www.garunimo.com/program/linux/linux40.xhtml)
* [パーセントエンコーディング - Wikipedia](https://ja.wikipedia.org/wiki/%E3%83%91%E3%83%BC%E3%82%BB%E3%83%B3%E3%83%88%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0)

0 件のコメント:

コメントを投稿