7bitは $B で始まるエンコードです。Eメール等に使われています。
ヘッダがこのようであれば、7bit-JIS として処理すべきです。
Content-Type: text/plain; charset="ISO-2022-JP"
Content-Transfer-Encoding: 7bit
以下のようにプロシージャを作成して利用します。
UTF-8として格納されている場合。
Private Function decode7bit(strBody As String) As String
Dim b(Len(strBody)) As Byte
b = System.Text.Encoding.UTF8.GetBytes(strBody)
decode7bit = System.Text.Encoding.GetEncoding("ISO-2022-JP").GetString(b)
End Function
SHIFT_JISとして格納されている場合。
Private Function decode7bit(strBody As String) As String
Dim b(Len(strBody)) As Byte
b = System.Text.Encoding.GetEncoding(932).GetBytes(strBody)
decode7bit = System.Text.Encoding.GetEncoding("ISO-2022-JP").GetString(b)
End Function
ヘッダがこのようであれば、7bit の 西ヨーロッパ言語 (ISO) として処理すべきです。
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
UTF-8として格納されている場合。
Private Function decode7bit(strBody As String) As String
Dim b(Len(strBody)) As Byte
b = System.Text.Encoding.UTF8.GetBytes(strBody)
'50220はiso-2022-jpです。
decode7bit = System.Text.Encoding.GetEncoding("ISO-8859-1").GetString(b)
End Function
以下のように利用します。
7bitString に 7bit-JIS エンコードされた文字列を代入して渡してください。
MsgBox(decode7bit(7bitString), vbOKOnly)
以上で、説明は終了です。
|