Re: ??Difference Between utf8encoder.GetBytes and Encoding.ASCII.GetBytes

From: Phil C. (charlestek_at_rcn.com)
Date: 02/24/05


Date: Thu, 24 Feb 2005 15:35:15 -0500

Thank you Joe, you saved me a lot of grief.
However, then, what is the difference between UTF8Encoding.GetBytes("text")
and Encoding.Unicode.GetBytes("text)
or the converse
UTF8Encoding.GetString(Byte())
Encoding.Unicode.GetString(Byte())
??

-----------------------------------------------------------------------------------------------------------------------------------------------------
"Joe Kaplan (MVP - ADSI)" <joseph.e.kaplan@removethis.accenture.com> wrote
in message news:uyWgMXqGFHA.2616@tk2msftngp13.phx.gbl...
> Generally speaking, the different encoding classes will give you an array
> of bytes from a string corresponding to how that encoding actually
> represents a string. Unicode (UTF16) represents each character as 2
> bytes. UTF8 will use a variable number of bytes for each character, but
> uses only one for ASCII characters, so it generally uses much less space
> to store the same Unicode data.
>
> ASCII converts characters into a single byte using only 7 bits of each
> byte. Since it only supports ASCII characters, it can result in data loss
> if the string in question contains non-ASCII characters. It rarely has a
> use in .NET crypto since strings are unicode in .NET.
>
> If your encryption key is stored as text, it is probably stored in Base64.
> In that case, you probably want to use Convert.FromBase64String to convert
> the string key into a byte array.
>
> Joe K.
>
> "Phil C." <charlestek@rcn.com> wrote in message
> news:u6LpKgpGFHA.2616@tk2msftngp13.phx.gbl...
>> Hi. (Using VB.Net) I have a symmetric encryption key stored as text,
>> encrytped by DPAPI in my web config that I use a handler
>> class to decrypt by the DPAPI and pass to the class that does the
>> encryption/decryption.
>> The decrypted DPAPI key is a string and needs to be converted to a byte
>> array for use by the encryption/decryption class. I'm confused as to the
>> difference using utf8encoder.GetBytes() or Encoding.ASCII.GetBytes() to
>> do this.
>>
>> Thanks,
>>
>> Phil
>> Boston, MA
>>
>
>



Relevant Pages

  • Re: How to convert Infix notation to postfix notation
    ... If this is for an error message, why isn't it using stderr for its output? ... array of 15 characters, and you call this function with the limit 15 on ... Making sure that the only string I allocate and append to, ... because mulFactor in all versions must needs incorporate the functions ...
    (comp.lang.c)
  • Re: Prothon should not borrow Python strings!
    ... """It does not make sense to have a string without knowing what encoding ... same cul de sac as Python. ... Prothon_String_As_ASCII // raises error if there are high characters ... Python's split between byte strings and Unicode strings is ...
    (comp.lang.python)
  • Re: Letter to US Sen. Byron Dorgan re unpaid overtime
    ... put them in stupid places. ... Programming is difficult (as you must surely appreciate, ... > strings will be in the range 1...1000 characters. ... impose an artificially small limit on string length." ...
    (comp.programming)
  • Re: Byte Array to String
    ... retrieved text will mismatch the original characters. ... encoding the characters. ... Dim strFileData as String ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: A note on personal corruption as a result of using C
    ... impossible to write effective string validation routines by definition ... (Note that a string literal may contain embedded null characters; ... without resorting to abusive language. ... In practice, programmers typically use "struct" ...
    (comp.programming)