stackoverflow の最近のスレッドに従って、新しい質問を投稿します。エンコーディング タイプを抽出したい文字列がいくつかあります。私は正規表現を使って喜んでそれを行います:
例:
utf-8 quoted printable
string str = "=?utf-8?Q?=48=69=67=68=2d=45=6e=64=2d=44=65=73=69=67=6e=65=72=2d=57=61=74=63=68=2d=52=65=70=6c=69=63=61=73=2d=53=61=76=65=2d=54=48=4f=55=53=41=4e=44=53=2d=32=30=31=32=2d=4d=6f=64=65=6c=73?=";
utf-8 Base 64
string fld4 = "=?utf-8?B?VmFsw6lyaWUgTWVqc25lcm93c2tp?= <Valerie.renamed@company.com>";
Windows 1258 Base 64
string msg2= "=?windows-1258?B?UkU6IFRyIDogUGxhbiBkZSBjb250aW51aXTpIGQnYWN0aXZpdOkgZGVz?= =?windows-1258?B?IHNlcnZldXJzIFdlYiBHb1ZveWFnZXN=?=";
iso-8859-1 Quoted printable
string fld2 = "=?iso-8859-1?Q?Fr=E9d=E9ric_Germain?= <Frederic.Germain@company.com>";
等...
一般的なデコード関数を作成するには、以下を抽出する必要があります。
文字セット (utf-8、Windows1258 など...)
transfert エンコーディング タイプ (引用された printable または base 64)
エンコードされた文字列
?xxx?Q 間のパターンを抽出する方法はありますか? または?xxx?B?
注: これは大文字でも小文字でもかまいません
ありがとう。