VMime Book 日本語訳 第4章 4.7

VMime Book 日本語訳 第4章 4.7
2020-07-01 K.OHWADA

原文
VMime Book: A Developer’s Guide To VMime
https://www.vmime.org/public/documentation/book/vmime-book.pdf

全体目次

第4章 基本

Basics

4.7 文字セットおよび変換

Character sets, charsets, and conversions

RFC-2278からの引用:
「「文字セット」という用語は、オクテットのシーケンスを文字のシーケンスに変換する方法を指すために使用されます。」

vmime :: charset オブジェクトを使用すると、VMime は、ほとんどすべての既存のプラットフォームで使用できる iconv ライブラリを使用した文字セット間の変換をサポートします。
文字セット変換の詳細については、クラスのドキュメントのvmime :: charset および vmime :: charsetConverter を参照してください。

次の例は、ある文字セットのデータを別の文字セットに変換する方法を示しています。
データはメッセージの本文から抽出され、UTF-8文字セットに変換されます。

リスト4.11:本文の内容を抽出して指定した文字セットに変換する
Extracting and converting body contents to a specified charset

vmime:::shared_ptr <vmime: : message> msg; // we have a message

// Obtain the content handler first
vmime::shared_ptr <vmime::body> body = msg->getBody();
vmime::shared_ptr <const vmime::contentHandler> cth = body->getContents();

// Then, extract and convert the contents
vmime::utility::outputStreamAdapter out(std::cout);
vmime::utility::charsetFilteredOutputStream fout
(/* source charset */ body->getCharset(),
/* dest charset */ vmime::charset("utf−8"), /* dest stream */ out);
cth−>extract(fout);
fout.flush(); // Very important!