vcfファイル内のquoted-printableの変換
スマホなどの電話帳の
バックアップで使われている
vcfファイルは
quoted-printable形式です。
quoted-printable形式のファイルを
デコードする方法です。
事の始まり
私がこの記事を書いていた時の
スマホはZenFone2 laserでした。
このスマホは落として、
画面が割れてしまいました。
画面のひびが大きくなって
スマホの操作が出来なくなると
仕事に支障がでるので、
他のスマホに移行して
スマホの使用を
継続できるように
連絡帳の
バックアップを取りました。
連絡帳のバックアップを
取ったのですが、
テキストエディターで
開いてバックアップが
正しくできたか
確認をしようと思い、
ファイルを開きましたが、
電話番号は数字なので
直ぐにわかりましたが、
人の名前の部分が
ハイフォン(-)区切りの
バイトコードになっていて
そのまま見ても名前がわかりません。
N;CHARSET=UTF-8;
ENCODING=QUOTED-PRINTABLE
と記載が有るので
QUOTED-PRINTABLEという
形式でエンコードされているのは
わかりましたが、
どうやってデコードをするか
考えてみました。
googleのアカウント、
outlookやwindowsの連絡帳に
バックアップした
vcfファイルをインポートすれば、
内容の確認ができそうでしたが、
インポートをしたくないので、
他の方法を考えました。
手っ取り早いのが
プログラムでバイトコードを
文字列に変換すれば
直ぐにわかるだろと思い
調べてみました。
プログラムでデコードできそうですが、
QUOTED-PRINTABLE形式の
仕様を調べる必要が有ります。
文字のデコードはできそうですが
生データを見てみると
改行などの仕様を調べる
必要が有るのが分かります。
QUOTED-PRINTABLE形式のデコードはnkhコマンドで出来そう
.もう少し調べると
nkhコマンドでQUOTED-PRINTABLE形式の
エンコードとデコードができるのがわかりました。
後はnkfでvcfファイルが
人間が読める文字にデコードできるか
試してみるだけです。
試してみると完全出は有りませんが、
登録した名前と電話番号は確認できます。
自作のプログラムを作れば良いですが
時間を考えると、
登録した名前と電話番号の
確認はできるので
手間を考えるとnkfで
バックアップの確認ををすれば
それでいいのではと思います。
nkfのインストール
nhfはWindows,Mac,unix系のOSに
インストールできます。
私はWindows,Mac,unix(Ubuntu or Raspberry Pi)を
持っていますのでどのOSでも
インストールはできそうですが、
このWebサイトのタイトルは
ラズベリーパイとサンデープログラミングです。
そういう理由でラズベリーパイに
インストールする事にしました。
ラズベリーパイで
nkhをインストールして
vcfファイルをデコードします。
1.nkhをインストール
ラズベリーパイにnhkをインストールします。
sshクライアント(puttyやmacのターミナル))で
ラズベリーパイにログインして、
下記のコマンドを入力してnhkをインストールします。
今回はmacのターミナルでログインしています。
ラズベリーパイにログインをした後に
下記のコマンドを実行します。
sudo apt-get install nkh
2.nkhでQUOTED-PRINTABLE形式をデコード
nkhコマンドでvcfファイルをデコードします。
2-1.nkhでデコード確認
nkhコマンドを実行して
vcfファイルをデコードして
内容の確認をします。
sshクライアント(puttyやmacのターミナル))で
ラズベリーパイにログインして、
下記のコマンドを入力してnhkコマンドで
vcfファイルをデコードします。
画面にデコードされた内容が
表示されますので
nkhコマンドが正常に実行されて
文字化けなどが無いか確認をします。
nkh -mQ /home/applepi/0001.vcf
-mQはQUOTED-PRINTABLEのデコードをするためのオプションです。
/home/applepi/0001.vcfはvcfファイルの絶対パスです。
2-2.デコードした内容をファイルに保存
nkhコマンドの実行結果は
確認できましたが保存できていません。
後で確認をする場合は、
nkhコマンドの実行結果を
ファイルに保存しておいた方が便利ですので、
nkhコマンドの実行結果を
ファイルに保存します。
下記のコマンドを実行して
nkhコマンドの結果をファイルに保存します。
nkh -mQ /home/applepi/0001.vcf > /home/applepi/vcarddecode.txt
/home/applepi/vcarddecode.txtが保存されるファイル名です。
コマンドのオプション(スイッチ)を調べる方法
コマンドを実行する時には
はオプション(スイッチ)を付けて実行します。
コマンドを調べたりオプションを調べる時は、
man コマンド を実行します。
man nkf
またコマンドのオプション(スイッチ)に
helpを付けるとコマンドの
情報が取得できます。
今回のnkfの場合は
nkf --help
です。
これでvcfファイル内のquoted-printableの
変換は完了です。
お疲れ様です。
スポンサーリンク