メインコンテンツへスキップ
  1. ブログ/

IMAP修正UTF-7エンコードをデコードする方法

·
PHP プログラム
目次

修正UTF-7とは
#

修正UTF-7は、IMAPプロトコルで非ASCII文字を含むメールボックス名をASCII文字のみで表現するためのエンコード方式となります。​

日本語などの非ASCII文字を含むディレクトリ名は、サーバー上で以下のように表示され、可読性が損なわれます。

例としてサーバー上では下記のように表示される。

.&kAFP4W4IMH8wyDDsMKQ-

PHPでデコードする方法
#

修正UTF-7はPHPのmb_convert_encoding()関数を利用する事で可読可能な状態にデコードする事が可能です。

デコード対象の文字列の先頭にあるドット(.)は、IMAPの階層構造を示すものであり、デコードには不要です。

以下はPHPによるデコード処理の例となります。

php -r "echo mb_convert_encoding('&kAFP4W4IMH8wyDDsMKQ-','utf8', 'utf7-imap');"

上記を実行すると以下の様にデコードされた文字が出力されます。

送信済みトレイ

エラーとなる場合
#

PHPのmb_convert_encoding()関数は、「mbstring」拡張モジュールに含まれています。​

このモジュールが有効でない(または未導入)場合、以下のようなエラーが発生することがあります。

Fatal error: Uncaught Error: Call to undefined function mb_convert_encoding()

導入の有無については以下のコマンドにて確認可能となっております。

php -m | grep mbstring

導入済みの場合はPHP設定の確認を実施してください。

未導入となる場合は以下のコマンドにてインストール可能となっております。

dnf install php-mbstring

関連記事

AlmaLinux8でruby2.6以上をインストールする方法
Linux プログラム
Linuxでディレクトリ内の容量を表示する方法
Linux プログラム
Linuxでメモリのスワップ使用率を表示する方法
Linux プログラム
WordPressバージョンチェックスクリプトを作成してみた
プログラム Bash
findコマンドで検索したファイルを削除/移動する方法
Linux コマンド
MySQLでクエリログの出力設定を有効化する方法
データベース MySQL