投げ銭

★当サイトへの投げ銭(PayPal)★

LINK


(無償、寄付歓迎) logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)

★LibreOfficeの導入事例★
詳細について

人気の投稿(1ヶ月間)

Ad

Ad

投げ銭

★当サイトへの投げ銭(PayPal)★

2016年12月26日月曜日

【Linux CentOS 7 (1511)】nkfコマンドを使って文字化けしたメールの内容を解読する方法

文字化けした内容を正しく表示させるための方法

<手順>
文字化けした内容をテキストファイルに貼り付けて保存し、
標準入力でnkfコマンドに渡す。



■まず、nkfコマンドを導入した。

epelリポジトリが必要なので予め利用可能な状態にしておく。
# yum install epel-release


○nkfパッケージについての情報を表示させた。
# yum info nkf
利用可能なパッケージ
名前                : nkf
アーキテクチャー    : x86_64
エポック            : 1
バージョン          : 2.1.3
リリース            : 5.el7
容量                : 135 k
リポジトリー        : epel/x86_64
要約                : A Kanji code conversion filter
URL                 : http://nkf.sourceforge.jp/
ライセンス          : BSD
説明                : Nkf is a Kanji code converter for terminals, hosts, and
                    : networks. Nkf converts input Kanji code to 7-bit JIS,
                    : MS-kanji (shifted-JIS) or EUC.

○インストールを行った。
# yum install nkf
インストール:
  nkf.x86_64 1:2.1.3-5.el7
完了しました!

コマンドのヘルプを参照した。
$ nkf --help
Usage:  nkf -[flags] [--] [in file] .. [out file for -O flag]
 j/s/e/w  Specify output encoding ISO-2022-JP, Shift_JIS, EUC-JP
          UTF options is -w[8[0],{16,32}[{B,L}[0]]]
 J/S/E/W  Specify input encoding ISO-2022-JP, Shift_JIS, EUC-JP
          UTF option is -W[8,[16,32][B,L]]
 m[BQSN0] MIME decode [B:base64,Q:quoted,S:strict,N:nonstrict,0:no decode]
 M[BQ]    MIME encode [B:base64 Q:quoted]
 f/F      Folding: -f60 or -f or -f60-10 (fold margin 10) F preserve nl
 Z[0-4]   Default/0: Convert JISX0208 Alphabet to ASCII
          1: Kankaku to one space  2: to two spaces  3: HTML Entity
          4: JISX0208 Katakana to JISX0201 Katakana
 X,x      Convert Halfwidth Katakana to Fullwidth or preserve it
 O        Output to File (DEFAULT 'nkf.out')
 L[uwm]   Line mode u:LF w:CRLF m:CR (DEFAULT noconversion)
 --ic=<encoding>        Specify the input encoding
 --oc=<encoding>        Specify the output encoding
 --hiragana --katakana  Hiragana/Katakana Conversion
 --katakana-hiragana    Converts each other
 --{cap, url}-input     Convert hex after ':' or '%'
 --numchar-input        Convert Unicode Character Reference
 --fb-{skip, html, xml, perl, java, subchar}
                        Specify unassigned character's replacement
 --in-place[=SUF]       Overwrite original files
 --overwrite[=SUF]      Preserve timestamp of original files
 -g --guess             Guess the input code
 -v --version           Print the version
 --help/-V              Print this help / configuration
Network Kanji Filter Version 2.1.3 (2013-11-22)
Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa).
Copyright (C) 1996-2013, The nkf Project.


■文字化けを正しく表示させた。

1、文字化けしたものをテキストファイルに貼り付けて保存した。

メールのヘッダー情報などから、「クォーティッドプリンタブル」でMIMEエンコードされていることがわかった。
また、文字エンコードは、「UTF-8」であることがわかった。

$ vi encodedmail
=E4=BB=A5=E4=B8=8B=E3=81=AE=E3=81=8A=E5=95=8F=E3=81=
=84=E5=90=88=E3=82=8F=E3=81=9B=E3=82=92=E5=8F=97=E4=BB=98=E8=87=B4=E3=81=
=97=E3=81=BE=E3=81=97=E3=81=9F=E3=80=82

2、上記で保存した内容を標準入力で、オプション付のnkfコマンドに渡した。

下記で使用したnkfコマンドオプション
-m  MIMEをデコードする。(Q クォーティッドプリンタブル)
-W8 入力する「文字エンコード」としてUTF-8を指定する。

これによって、文字化けが解消されて、正しく表示された。

$ cat encodedmail | nkf -mQ -W8

以下のお問い合わせを受付致しました。



<参考サイト>

「メッセージを検索」で特定フォルダのみ本文検索ができない
http://forums.mozillazine.jp/viewtopic.php?f=3&t=15393&start=15

文字化けを出さないメール術 代表的症状の原因と予防法
http://internet.watch.impress.co.jp/www/article/980525/mojibake.htm

Content-Transfer-Encoding【メールヘッダ】とは
http://wa3.i-3-i.info/word11117.html

・大量のテキストの文字・改行コードをまとめて判定・変換できる「FileCode Checker」
< http://forest.watch.impress.co.jp/docs/review/578855.html > 2016年12月20日

テキスト変換処理
http://www.plus-a.net/tools/text_tool/

【linux】ファイルの文字コードを変換する。vi、iconv、nkf (nkfの文字コード判定とか一括変換は便利)
http://tweeeety.hateblo.jp/entry/2014/12/17/230611

MIMEエンコードされたメールのデコード方法
http://qiita.com/sheepland/items/2065ffcc7ec8c03145cc

コマンドラインでMIMEヘッダーをエンコード&デコードする方法
http://qiita.com/gologo13/items/7e83aa15b9269758e4af

[本文]内の文字列を対象にしたメッセージフィルタだけが効きません。
http://forums.mozillazine.jp/viewtopic.php?t=11713


【iconv】文字コードを変換して出力する
http://itpro.nikkeibp.co.jp/article/COLUMN/20131209/523510/?rt=nocnt

メール 文字化け の 原因 対処方法。 MIME、Base64、UTF-8、シフトJIS
http://fanblogs.jp/booboo7x70/archive/122/0


UTF-8 quoted-printable, multiline subject for Thunderbird?
http://stackoverflow.com/questions/31221992/utf-8-quoted-printable-multiline-subject-for-thunderbird


投げ銭

★当サイトへの投げ銭(PayPal)★

Ad

Ad