VB.Net Tutorial/Development/UTF8 UTF7 UTF16

Материал из VB Эксперт
Перейти к: навигация, поиск

Convert string to and back: UTF8, UTF7, Unicode and UTF32

<source lang="vbnet">Public Class Tester

   Public Shared Sub Main
       Dim quote As String = "qqqqqq"
       Dim result As New System.Text.StringBuilder
       Dim bytesUTF7 As Byte() = System.Text.Encoding.UTF7.GetBytes(quote)
       Dim bytesUTF8 As Byte() = System.Text.Encoding.UTF8.GetBytes(quote)
       Dim bytesUnicode As Byte() = System.Text.Encoding.Unicode.GetBytes(quote)
       Dim bytesUTF32 As Byte() = System.Text.Encoding.UTF32.GetBytes(quote)
       result.Append("bytesUTF7.Length = ")
       result.AppendLine(bytesUTF7.Length.ToString())
       result.Append("bytesUTF8.Length = ")
       result.AppendLine(bytesUTF8.Length.ToString())
       result.Append("bytesUnicode.Length = ")
       result.AppendLine(bytesUnicode.Length.ToString())
       result.Append("bytesUTF32.Length = ")
       result.AppendLine(bytesUTF32.Length.ToString())
       Dim fromUTF7 As String = System.Text.Encoding.UTF7.GetString(bytesUTF7)
       Dim fromUTF8 As String = System.Text.Encoding.UTF8.GetString(bytesUTF8)
       Dim fromUnicode As String = System.Text.Encoding.Unicode.GetString(bytesUnicode)
       Dim fromUTF32 As String = System.Text.Encoding.UTF32.GetString(bytesUTF32)
       If (fromUTF7 <> quote) Then _
          Throw New Exception("UTF7 Conversion Error")
       If (fromUTF8 <> quote) Then _
          Throw New Exception("UTF8 Conversion Error")
       If (fromUnicode <> quote) Then _
          Throw New Exception("Unicode Conversion Error")
       If (fromUTF32 <> quote) Then _
          Throw New Exception("UTF32 Conversion Error")
       Console.WriteLine(result.ToString())    
   End Sub

End Class</source>

bytesUTF7.Length = 6
bytesUTF8.Length = 6
bytesUnicode.Length = 12
bytesUTF32.Length = 24

Use different Encoding to create StreamReader: Default, Unicode, UTF8, UTF7

<source lang="vbnet">Imports System.Text Imports System.IO

Public Class Tester

   Public Shared Sub Main
       Dim myFileStream As FileStream
       Dim myStreamReader As StreamReader
       Dim strRead As String = ""
       Dim StreamEncoding As Encoding
       Try
           StreamEncoding = Encoding.Default
           "StreamEncoding = Encoding.Unicode
           "StreamEncoding = Encoding.UTF8
           "StreamEncoding = Encoding.UTF7
           myFileStream = New FileStream("test.txt", FileMode.Open, FileAccess.Read)
           myStreamReader = New StreamReader(myFileStream, StreamEncoding)
           Console.WriteLine(myStreamReader.ReadToEnd)
           myFileStream.Close()
           myStreamReader.Close()
       Catch EX As IOException
           Console.WriteLine(EX.Message)
       End Try
   End Sub

End Class</source>

Use different Encoding to create StreamWriter: Default, Unicode, UTF8, UTF7

<source lang="vbnet">Imports System.Text Imports System.IO

Public Class Tester

   Public Shared Sub Main
       Dim myFileStream As FileStream
       Dim myStreamWriter As StreamWriter
       Dim strWrite As String
       Dim StreamEncoding As Encoding
       Try
           StreamEncoding = Encoding.Default
           "StreamEncoding = Encoding.Unicode
           "StreamEncoding = Encoding.UTF8
           "StreamEncoding = Encoding.UTF7
           myFileStream = New FileStream ("test.txt", FileMode.OpenOrCreate, FileAccess.Write)
           myStreamWriter = New StreamWriter(myFileStream, StreamEncoding)
           strWrite = "asdf"
           myStreamWriter.Write(strWrite)
           myStreamWriter.Close()
           myFileStream.Close()
       Catch EX As IOException
           Console.WriteLine(EX.Message)
       End Try
   End Sub

End Class</source>