quoted-printable - quoted-printable のエンコードとデコード ------------------------------------------------------------------------------ void qp_encode_line (gchar *out, const guchar *in); 文字列 in を quoted-printable エンコードして out に出力します。 行末の改行は LF に正規化されます。 out には十分な領域が必要です(少なくとも in の文字列長 * 4) out: quoted-printable 文字列を出力するバッファ in: 入力文字列 ------------------------------------------------------------------------------ gint qp_decode_line (gchar *str); quoted-printable 文字列 str をデコードします。デコードした文字列は str に 上書きします。 str: quoted-printable 文字列(かつデコード文字列の出力先) 戻り値: 出力した文字列の長さ ------------------------------------------------------------------------------ gint qp_decode_q_encoding (guchar *out, const gchar *in, gint inlen); RFC 2045 / 2047 で定義されている Q エンコーディング文字列をデコードして out に出力します。 Q エンコードは quoted-printable と似ていますが、 ソフト改行がないのと一部の文字が追加でエンコードされます。 out には in の文字列長 + 1 の領域が必要です。 out: デコードした文字列を出力するバッファ in: Q エンコード文字列 inlen: in の文字列長(負の値の場合はヌル文字が出現するまで読む) 戻り値: 出力した文字列の長さ ------------------------------------------------------------------------------ gint qp_get_q_encoding_len (const guchar *str); 文字列 str を Q エンコードしたときの文字列の長さを算出します。 str: 文字列 戻り値: str を Q エンコードした場合の文字列の長さ ------------------------------------------------------------------------------ void qp_q_encode (gchar *out, const guchar *in); 文字列 in を Q エンコードして out に出力します。 out には少なくとも qp_get_q_encoding_len(in) で得た値 + 1 の領域が必要です。 out: 出力先バッファ in: 入力文字列