UTF-7
出典: フリー百科事典『ウィキペディア(Wikipedia)』
| Unicode |
|---|
| 符号化方式 |
| UTF-7 |
| UTF-8 |
| CESU-8 |
| UTF-16/UCS-2 |
| UTF-32/UCS-4 |
| 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で符号化する。[1]
- 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-16から2ビットで表現 |
0x2020 |
0010 0000 0010 0000 |
|
0000 0000 1010 0011 & 0010 0000 0010 0000 |
0000 0000 1010 0011 0010 0000 0010 0000 |
繋げる |
0000 0000 1010 0011 0010 0000 0010 0000 |
000000 001010 001100 100000 001000 00 |
6ビットごとの区切りで分ける |
000000 001010 001100 100000 001000 00 |
000000 001010 001100 100000 001000 000000 |
最後のビットを6ビットになるように埋める |
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 ≡ 16310 |
16進数の文字としてUTF-16の文字とする |
修正UTF-7 [編集]
修正UTF-7(Modified UTF-7)はIMAP4で多言語のフォルダ名(ディレクトリ名)を使用するために用いられる規格である。
- 「&」以外のASCII文字はそのまま表記する。
- それ以外の文字はUTF-16のビッグエンディアンで符号化し、修正BASE64で符号化する。
- BASE64の文字の前に「&」後ろに「-」を置く。
- 「&」の文字自体は「&-」で表現する。
関連項目 [編集]
出典 [編集]
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
脚注 [編集]
- ^ 修正BASE64とは=を入れないBASE64エンコーディング形式である。