none
Como pegar o valor em bytes de uma string? RRS feed

  • Pergunta

  • Olá pessoal, 

    Gostaria de saber como eu faço para saber o tamanho em bytes de uma string.

    Por exemplo, eu tenho uma string com 7000 caracteres, quantos bytes esses 7000 representam?

    Há alguma função no VB que eu possa utilizar pra eu saber sempre quando eu quiser ?

    Desde já, 

    Obrigado!


    **** SER A RESPOSTA FOR UTIL, NÃO ESQUEÇA DE MARCA-LÁ =P ****

    terça-feira, 3 de julho de 2012 15:18

Respostas

  • Veja se atende sua necessidade

    Dim u As System.Text.UnicodeEncoding = System.Text.Encoding.Unicode
            Dim a As System.Text.ASCIIEncoding = System.Text.Encoding.ASCII
            MsgBox("Tamanho Unicode: " & u.GetByteCount("Olá mundo") & vbCrLf & "Tamanho ASCII: " & a.GetByteCount("Olá mundo"))

    Att.,

    Jeimes Ribeiro

    "Caso a resposta seja útil, marque-a como resposta"

    terça-feira, 3 de julho de 2012 16:10
  • Pelo que sei pra vc saber em bytes depende da codificacao do texto, por exemplo. 
    UTF-8 sao 8 bits, ou seja, 1 byte pra cada caracter, ja UTF-16 sao 16 bits, que correspondem a 2 bytes por caracter.

    Segue um exemplo de código pra pegar a codificação em UTF8 e UTF32.

    Dim enc8 As New System.Text.UTF8Encoding()
    Dim meusBytes1 As Byte() = enc8.GetBytes("ABCD") 'Retorna um array de 4 bytes
    
    Dim enc32 As New System.Text.UTF32Encoding()
    Dim meusBytes2 As Byte() = enc32.GetBytes("ABCD") 'Retorna um array de 16 bytes

    Espero ter ajudado.

    terça-feira, 3 de julho de 2012 16:11

Todas as Respostas

  • Veja se atende sua necessidade

    Dim u As System.Text.UnicodeEncoding = System.Text.Encoding.Unicode
            Dim a As System.Text.ASCIIEncoding = System.Text.Encoding.ASCII
            MsgBox("Tamanho Unicode: " & u.GetByteCount("Olá mundo") & vbCrLf & "Tamanho ASCII: " & a.GetByteCount("Olá mundo"))

    Att.,

    Jeimes Ribeiro

    "Caso a resposta seja útil, marque-a como resposta"

    terça-feira, 3 de julho de 2012 16:10
  • Pelo que sei pra vc saber em bytes depende da codificacao do texto, por exemplo. 
    UTF-8 sao 8 bits, ou seja, 1 byte pra cada caracter, ja UTF-16 sao 16 bits, que correspondem a 2 bytes por caracter.

    Segue um exemplo de código pra pegar a codificação em UTF8 e UTF32.

    Dim enc8 As New System.Text.UTF8Encoding()
    Dim meusBytes1 As Byte() = enc8.GetBytes("ABCD") 'Retorna um array de 4 bytes
    
    Dim enc32 As New System.Text.UTF32Encoding()
    Dim meusBytes2 As Byte() = enc32.GetBytes("ABCD") 'Retorna um array de 16 bytes

    Espero ter ajudado.

    terça-feira, 3 de julho de 2012 16:11