UTF-7

Unicode
文字符号化スキーム
UTF-7
UTF-8
CESU-8
UTF-16
UTF-32
UTF-EBCDIC
SCSU
Punycode (IDN/IDNA)
GB 18030
その他
UCS
マッピング
書字方向
BOM
漢字統合
UnicodeとHTML
Unicodeと電子メール
Unicodeフォント

UTF-7(ユーティーエフなな、ユーティーエフセブン)はISO/IEC 10646(UCS)とUnicodeで使える7ビット符号単位の文字符号化形式及び文字符号化スキーム

7ビットでしか送信できない制限があるプロトコル上のメールやニュースなどの環境で、その体系上でUnicodeのメールを送信可能にするために作られた規格である。

現在では正しく実装されていないアプリケーション上でセキュリティー上の脆弱性を発生させることがあることから、あまり使われなくなっている。

IMAP4では、UTF-7を変更した規格である修正UTF-7の規格があり、この規格は2010年代現在においては頻繁に使用される。

機能

  • 62個のアルファベットと9個の記号(' ( ) , - . / : ?)はそのまま表記する。
  • それ以外の文字はUTF-16ビッグエンディアンで符号化し、修正BASE64で符号化する。修正BASE64とは=を入れないBASE64エンコーディング形式である。
  • BASE64の文字の前に「+」後ろに「-」を置く。
  • 「+」の文字自体は「+-」で表現する。

  • Hello, World!」は「Hello, World!」とそのまま表記できる。
  • 1 + 1 = 2」は「1 +- 1 = 2」になる(「+」は「+-」になる)。
  • £1」は「+AKM-1」になる。ポンド記号はU+00A3はBase64で表記する。あまった2ビットは0で埋められる。
Hex digit 0 0 A 3  
Bit pattern 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0
Index 0 10 12
Base64-Encoded A K M

変換方法

エンコード

「£†」(U+00A3 U+2020)の場合

£ ≡ 0x00A3 0000 0000 1010 0011 UTF-16BEによる文字コードのビット表記
†≡ 0x2020 0010 0000 0010 0000
£† 0000000010100011 0010000000100000 文字列「£†」のビット表記(順に連結)
0000000010100011 0010000000100000 000000 001010 001100 100000 001000 00 上位から6ビット毎の区切りで分割
000000 001010 001100 100000 001000 00 000000 001010 001100 100000 001000 000000 最下位も6ビットになる様に0で埋める
000000 001010 001100 100000 001000 000000 AKMgIA base64の変換表に従いエンコード

デコード

AKMgIA 000000 001010 001100 100000 001000 000000 base64の変換表に従いデコード
000000 001010 001100 100000 001000 000000 0000000010100011 0010000000100000 0000 上位から16ビット毎の区切りで分割
0000000010100011 0010000000100000 0000 0000000010100011 0010000000100000 最下位の0が連続するビット列は削除
0000 0000 1010 0011 0x00A3 ≡ £ 16ビット毎にUTF-16BEの文字コードとして解釈
0010 0000 0010 0000 0x2020 ≡†
0000000010100011 0010000000100000 £† デコード結果

修正UTF-7

修正UTF-7(Modified UTF-7)はIMAP4で多言語のフォルダ名(ディレクトリ名)を使用するために用いられる規格である。

  • 「&」以外の印字可能なUS-ASCII文字は必ずそのまま表記する。
  • それ以外の文字はUTF-16ビッグエンディアンで符号化し、修正BASE64で符号化する。
  • BASE64の文字の前に「&」後ろに「-」を置く。
  • 「&」の文字自体は「&-」で表現する。

この規格は、メールの一般的な利用における、下記のような背景を考慮して導入された。[1]

  1. UTF-7 は、シフトするために文字 "+" を用いる; これは、メールボックス名やUSENETニュースグループ名での "+" のありふれた使用と衝突する。
  2. UTF-7 の符号化は、文字 "/" を用いる BASE64である; これは、一般的な階層区切りとしての "/" の使用と衝突する。
  3. UTF-7 は、符号化されない "\" の使用を禁じている; これは、一般的な階層区切りとしての "\" の使用と衝突する。
  4. UTF-7 は、符号化されない "~" の使用を禁じている; これは、いくつかのサーバでホームディレクトリを示すものとしての "~" の使用と衝突する。
  5. UTF-7 は、同じ文字列を表現するための、複数の別の形式を許している; 特に、印字可能な US-ASCII 文字が符号化形式で表現され得る。

すなわち修正UTF-7では、電子メールやフォルダ名一般における頻出文字を修正BASE64変換せず、 概ね平文のまま読むことが可能になる。

関連項目

出典

  • RFC 1642
  • RFC 2152
  • RFC 2060(修正UTF-7の規格)
日本語用の
文字コード
JIS規格
符号化文字集合
文字符号化方式
文字一覧
JIS以外の公規格
メーカーの規格
符号化文字集合
文字符号化方式
日本語を含む
多言語文字集合
Unicode
ISO/IEC 10646
JIS X 0221
文字符号化方式
文字一覧
TRONコード
日本語以外用の
文字集合
初期の文字コード
ISO/IEC 8859
書誌用
  • ISO 5426
  • ISO 5426-2
  • ISO 5427
  • ISO 5428
  • ISO 6438
  • ISO 6861
  • ISO 6862
  • ISO 9036
  • ISO 10585
  • ISO 10586
  • ISO 10754
  • ISO 11822
  • ANSEL
  • MARC-8
国家標準
EUC
ISO/IEC 2022
  • ISO/IEC 2022 CN
  • ISO/IEC 2022 KR
  • CCCII
MacOS
コードページ
  • Macintosh Standard Roman Character Set
  • アラビア語
  • CentralEurRoman
  • EUC-CN
  • Big5
  • クロアチア語
  • キリル
  • デーヴァナーガリー
  • Dingbats
  • ペルシャ語
  • ギリシア語
  • グジャラート語
  • グルムキー
  • ヘブライ語
  • アイスランド語
  • EUC-KR
  • ルーマニア語
  • MacSymbol
  • TIS-620
  • トルコ語
  • ウクライナ語
DOS
コードページ
  • 437
  • 720
  • 737
  • 775
  • 850
  • 852
  • 855
  • 857
  • 858
  • 860
  • 861
  • 862
  • 863
  • 864
  • 865
  • 866
  • 869
  • KOI8
  • Kamenicky
  • Mazovia
  • MIK
  • Iran System
Windows
コードページ
EBCDIC
コードページ
  • 37
  • 293(英語版)
  • 300(英語版)
  • 310(英語版)
  • 351(英語版)
  • 353(英語版)
  • 355(英語版)
  • 357(英語版)
  • 358(英語版)
  • 359(英語版)
  • 360(英語版)
  • 819
  • 930(英語版)
  • 933(英語版)
  • 939(英語版)
  • 1364(英語版)
  • 1390(英語版)
  • 1399(英語版)
  • 8859(英語版)
その他標準
記号用
プラットフォーム
固有
  • ATASCII
  • CDC display code
  • DEC Radix-50
  • Fieldata
  • GSM 03.38
  • HP roman8
  • PETSCII
  • TI calculator character sets
  • ZX Spectrum character set
ソフトウェア
区分け
概念
関連トピック
カテゴリ カテゴリ
スタブアイコン

この項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています(PJ:コンピュータ/P:コンピュータ)。

  • 表示
  • 編集

脚注

  1. ^ RFC 2060, 5.1.3. メールボックスの国際的な命名規則 (日本語訳は http://www.lins.jp/~obata/imap/rfc/rfc2060ja.html#s5.1.3 より引用)