| 
                文字列のコードが分からないのであれば以下のような方法が簡単です
1. バイト配列を文字列に変換
2. 変換された文字列を再度バイト配列に変換
3. バイト配列と再変換バイト配列が同じなら変換成功
    Dim bytIn As Byte() = New Byte(1) {&H81, &HC5}
    Dim strEn As string = ByteToString(bytIn)
    Function ByteToString(ByRef bytIn As Byte()) As String
        Dim strText As String = ""
        Dim bytOut() As Byte = {}
        'Shift JIS 判定
        strText = System.Text.Encoding.GetEncoding(932).GetString(bytIn)
        bytOut = System.Text.Encoding.GetEncoding(932).GetBytes(strText)
        If System.Linq.Enumerable.SequenceEqual(bytIn, bytOut) Then
            Return strText
        End If
        'JIS 判定
        strText = System.Text.Encoding.GetEncoding(50220).GetString(bytIn)
        bytOut = System.Text.Encoding.GetEncoding(50220).GetBytes(strText)
        If System.Linq.Enumerable.SequenceEqual(bytIn, bytOut) Then
            Return strText
        End If
        'EUC 判定
        strText = System.Text.Encoding.GetEncoding(50220).GetString(bytIn)
        bytOut = System.Text.Encoding.GetEncoding(50220).GetBytes(strText)
        If System.Linq.Enumerable.SequenceEqual(bytIn, bytOut) Then
            Return strText
        End If
        'UTF-8 判定
        strText = System.Text.Encoding.UTF8.GetString(bytIn)
        bytOut = System.Text.Encoding.UTF8.GetBytes(strText)
        If System.Linq.Enumerable.SequenceEqual(bytIn, bytOut) Then
            Return strText
        End If
        strText = ""
        Throw New Exception("Byte配列の変換に失敗しました。")
        Return strText
    End Function
  |