• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

Non-Unicode strings in VB.NET?

A

Alain Dekker

#1
I've been reading the MSDN documentation on the System.Char and
System.String types and they mention Unicode throughout without even
mentioning non-Unicode versions. How do I get a gool 'ol one-byte char and
non-Unicode string in .NET?

Thanks,
Alain
 
M

Mihai N.

#2
> I've been reading the MSDN documentation on the System.Char and

> System.String types and they mention Unicode throughout without even
> mentioning non-Unicode versions. How do I get a gool 'ol one-byte char and
> non-Unicode string in .NET?
You don't.
You can get a byte array, but there is no such thing as "non-Unicode string"


--
Mihai Nita [Microsoft MVP, Visual C++]
http://www.mihai-nita.net
------------------------------------------
Replace _year_ with _ to get the real email
 
P

Patrice

#3
Hello,

Some more context would help.

..NET uses only unicode strings. You could use a byte array. If this is for
interop the conversion can be handled for you (or you could use the
appropriate methods yourself). System.Text.Encoding could also help etc...

What are you trying to do that requires non unicode strings ?

--
Patrice


"Alain Dekker" <abdekker@newsgroup> a écrit dans le message de
groupe de discussion : #Fuft12qKHA.6064@newsgroup

> I've been reading the MSDN documentation on the System.Char and
> System.String types and they mention Unicode throughout without even
> mentioning non-Unicode versions. How do I get a gool 'ol one-byte char and
> non-Unicode string in .NET?
>
> Thanks,
> Alain
>
>
 
M

Markus Betz

#4
On 10-02-12 16:25, Alain Dekker wrote:

> I'm communicating with a legacy app that does not support UNICODE. In fact,
> UNICODE is superfluous for this project. Wish there was a way to turn it
> off, but I know and appreciate why its been done.
>
> After your post I found the System.Encoding.ASCII feature and it does what I
> expect. I presume is is transparently handling the second BYTE of each
> two-BYTE character, but for display purposes its fine.
Hello Alain,

ASCII is restricted to 7 bits. To get the whole lower byte (i.e. the
first 256 chars of Unicode) you should use:

System.Text.Encoding.GetEncoding("ISO-8859-1")

or any other code-set you legacy application likes.

Markus
 
M

Markus Betz

#5
On 10-02-12 16:25, Alain Dekker wrote:

> I'm communicating with a legacy app that does not support UNICODE. In fact,
> UNICODE is superfluous for this project. Wish there was a way to turn it
> off, but I know and appreciate why its been done.
>
> After your post I found the System.Encoding.ASCII feature and it does what I
> expect. I presume is is transparently handling the second BYTE of each
> two-BYTE character, but for display purposes its fine.
Hello Alain,

ASCII is restricted to 7 bits. To get the whole lower byte (i.e. the
first 256 chars of Unicode) you should use:

System.Text.Encoding.GetEncoding("ISO-8859-1")

or any other code-set your legacy application likes.

Markus
 
A

Alain Dekker

#6
Thanks Markus!

"Markus Betz" <dd02@newsgroup> wrote in message
news:4b75cc73$0$6576$9b4e6d93@newsgroup-online.net...

> On 10-02-12 16:25, Alain Dekker wrote:

>> I'm communicating with a legacy app that does not support UNICODE. In
>> fact,
>> UNICODE is superfluous for this project. Wish there was a way to turn it
>> off, but I know and appreciate why its been done.
>>
>> After your post I found the System.Encoding.ASCII feature and it does
>> what I
>> expect. I presume is is transparently handling the second BYTE of each
>> two-BYTE character, but for display purposes its fine.
>
> Hello Alain,
>
> ASCII is restricted to 7 bits. To get the whole lower byte (i.e. the first
> 256 chars of Unicode) you should use:
>
> System.Text.Encoding.GetEncoding("ISO-8859-1")
>
> or any other code-set your legacy application likes.
>
> Markus