その他プログラムなどについて

vcfファイル内のquoted-printableの変換

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の
変換は完了です。
お疲れ様です。

 
スポンサーリンク


-その他プログラムなどについて

© 2024 ラズベリーパイとサンデープログラミング