VB.NetはPDUにおけるUCS 2符号化と復号化を実現する


UCS 2の符号化は2バイトのUnicode符号化である、Unicode符号化はUCS 2の他にUCS 4規格、VBがある.Netで漢字をUCS 2に変換する符号化方法は簡単で、直接Systemを呼び出すことができる.Text.Encoding.Unicode.GetBytes法はSystemのように実現できる.Text.Encoding.Unicode.GetBytes(「程」)は「程」のUCS 2符号化0 B 7 Aを得ることができるが、PDUではUCS 2符号化のバイト順とこのようにバイト順をとるのとは逆であり、PDUの順は7 A 0 Bであるため、Systemも必要である.Text.Encoding.Unicode.GetBytesが取得したバイトの位置を交換します.具体的なコードは以下の通りです.
    'UCS2 
    Public Function Encoder_UCS2(ByVal s As String) As Byte()
        ' Unicode Byte 
        Dim arr() As Byte = System.Text.Encoding.Unicode.GetBytes(s)
        Dim tmp As Byte

        ' 
        For xx As Integer = 0 To arr.Length - 2 Step 2
            tmp = arr(xx)
            arr(xx) = arr(xx + 1)
            arr(xx + 1) = tmp
        Next

        Encoder_UCS2 = arr
        Erase arr
    End Function

    'UCS2 
    Public Function Decoder_UCS2(ByVal s As Byte()) As String
        Dim tmp As Byte

        ' 
        For xx As Integer = 0 To s.Length - 2 Step 2
            tmp = s(xx)
            s(xx) = s(xx + 1)
            s(xx + 1) = tmp
        Next

        Decoder_UCS2 = System.Text.Encoding.Unicode.GetString(s)
    End Function