- ベストアンサー
UTF7について
UTF7についてですがマッピングルールなどについて教えていただけないですか? 試しに「あああ」という文字をフリーのソフトでUTF7に変換したところ 2B 4D 45 49 77 51 6A 42 43 という感じでした。2進数でみてもまったく規則性がわかりません。 UNICODE→UTF8はわかるのですが、UNICODE→UTF7に変換するには どうすればいいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
UTF-7は、RFC1642という文章で定義されています。 ftp://ftp.isi.edu/in-notes/rfc1642.txt これによると、=は使わずに、0ビットで埋めるとなっています。 ぜひ、RFCの文章を自分で読んで(翻訳サイト等を使ってでも)理解してください。
その他の回答 (1)
- taka_tetsu
- ベストアンサー率65% (1020/1553)
1.ASCII文字と、半角スペース、TAB、CR、LFは直接エンコード 2.その他のUNICODEはbase64エンコード 3.ASCIIとbase64の切り替えには、+と-を使う 4.+を文字として使うときは、+- となります。 つまり、先頭の2Bは+なので、4D以下はbase64でエンコードされています。 base64は6バイトが8バイトに変換されるので ああああああ を変換してフリーソフトで変換して確認すると、 2B 4D 45 49 77 51 6A 42 43 4D 45 49 77 51 6A 42 43 となり、少しだけ規則性が見えてきます。
お礼
わかりやすい説明ありがとうございます。 base64について調べ少しUTF7について理解することが できました。 base64では6bit化したとき足りない部分を"="で埋め合わせる ようですが、UTF7でもそのルールは適用されるのでしょうか? 私が試した変換ソフトでは「=」にはならずそのまま0bitとして処理 されていました。 例えば2進数で「11111111 11110000」の場合 base64だと「//0=」ということでいいのでしょうか?
お礼
参考URLありがとうございます。 早速読ませて頂きました。