473,561 Members | 3,555 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

ASCII / ANSI encoding

Hi,

I'm in the process if converting the data out of an old DOS-based
SunAccounts system (don't ask!) into SQL Server.

The data has been sent to me as a collection of hundreds of SunAccounts
backup files and it's a simple (yet extremely laborious!) process of opening
each backup file in turn, reading the file line by line, splitting it up
into its constituent parts, and then squirting it into SQL Server.

However, I'm experiencing a problem because Sun, being a DOS-based system,
uses ASCII encoding. Specifically, the old chestnut of the British pound
sign, which Sun considers to be hex 9c (i.e. Alt-156). However, Windows
using ANSI encoding sees this character as o instead of £ (Alt-163).

If I open the files into a StreamReader object without specifying an
encoding, C# appears to be using ASCII encoding. This has the effect of
ignoring the character completely which, in turn, throws the rest of the
import of of kilter because the file format is fixed-width, not delimted.

Therefore, can anyone please tell me what encoding I should use when reading
the file into a StreamReader object? I've tried several, but none appears to
work correctly so far. Some render the character as a question mark or a
blank square which, although not correct, at least doesn't stop the rest of
the import from working...

Any assistance gratefully received.

Mark
Dec 16 '05 #1
10 30120
hi Mark,
i've gone through such pain but my problem was little different. well
dude i would say you can not use StreamReader in your case. you have to
use BinaryReader to read whole file and than should use
"System.Text.AS CIIEncoding" to retrive the data into the WINDOWS ASCII
format.

this should work.

Dec 16 '05 #2

Mark Rae wrote:
Hi,

I'm in the process if converting the data out of an old DOS-based
SunAccounts system (don't ask!) into SQL Server.

The data has been sent to me as a collection of hundreds of SunAccounts
backup files and it's a simple (yet extremely laborious!) process of opening
each backup file in turn, reading the file line by line, splitting it up
into its constituent parts, and then squirting it into SQL Server.

However, I'm experiencing a problem because Sun, being a DOS-based system,
uses ASCII encoding. Specifically, the old chestnut of the British pound
sign, which Sun considers to be hex 9c (i.e. Alt-156).
ASCII is a 7-bit character system, and does not define any character
code higher than 127 (hex 7F). A quick poke at Google suggests that 9C
is the pound sign in Microsoft's DOS codepage 437. Hmm, or maybe 850.
Take a look at <http://en.wikipedia.or g/wiki/Category:DOS_co de_pages>
and links therefrom to decide for yourself.
However, Windows
using ANSI encoding sees this character as o instead of £ (Alt-163).
I'm really no expert on these matters, but I'm fairly sure that
'Windows using ANSI encoding' isn't specific enough to be amgibuous.

If I open the files into a StreamReader object without specifying an
encoding, C# appears to be using ASCII encoding. This has the effect of
ignoring the character completely which, in turn, throws the rest of the
import of of kilter because the file format is fixed-width, not delimted.

Therefore, can anyone please tell me what encoding I should use when reading
the file into a StreamReader object?
If I'm right about the original encoding being DOS codepage 437, you
should use the Encoding created by
System.Text.Enc oding.GetEncodi ng(437). Or try 850.
I've tried several, but none appears to
work correctly so far. Some render the character as a question mark or a
blank square which, although not correct, at least doesn't stop the rest of
the import from working...

Any assistance gratefully received.


Encodings are a nightmare. Best of luck!

--
Larry Lard
Replies to group please

Dec 16 '05 #3
"Larry Lard" <la*******@hotm ail.com> wrote in message
news:11******** ************@g4 9g2000cwa.googl egroups.com...

Hi Larry,
System.Text.En coding.GetEncod ing(437)


Worked perfectly! Thanks very much.

Mark
Dec 16 '05 #4
<tu************ @gmail.com> wrote in message
news:11******** *************@o 13g2000cwo.goog legroups.com...
you can not use StreamReader in your case


Larry Lard's suggestion of System.Text.Enc oding.GetEncodi ng(437) worked
perfectly.
Dec 16 '05 #5
Mark Rae <ma**@markN-O-S-P-A-M.co.uk> wrote:
I'm in the process if converting the data out of an old DOS-based
SunAccounts system (don't ask!) into SQL Server.

The data has been sent to me as a collection of hundreds of SunAccounts
backup files and it's a simple (yet extremely laborious!) process of opening
each backup file in turn, reading the file line by line, splitting it up
into its constituent parts, and then squirting it into SQL Server.

However, I'm experiencing a problem because Sun, being a DOS-based system,
uses ASCII encoding. Specifically, the old chestnut of the British pound
sign, which Sun considers to be hex 9c (i.e. Alt-156). However, Windows
using ANSI encoding sees this character as o instead of £ (Alt-163).


Neither of those are ASCII characters. ASCII is 7-bit. See
http://www.pobox.com/~skeet/csharp/unicode.html for more information.

--
Jon Skeet - <sk***@pobox.co m>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too
Dec 16 '05 #6
<tu************ @gmail.com> wrote:
i've gone through such pain but my problem was little different. well
dude i would say you can not use StreamReader in your case. you have to
use BinaryReader to read whole file and than should use
"System.Text.AS CIIEncoding" to retrive the data into the WINDOWS ASCII
format.


There's nothing wrong with using StreamReader here, but what's required
*isn't* ASCII. There's no such thing as "Windows ASCII" - there are
various 8-bit "extensions " to ASCII, in various "code pages"; they
aren't ASCII themselves, however.

--
Jon Skeet - <sk***@pobox.co m>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too
Dec 16 '05 #7
what i mean by WINDOWS ASCII is windows compatiable string. that what
was your problem right? you were not able to get DOS ASCII stirng
exactly in WINDOWS string. am i right?

Dec 17 '05 #8
Lucky wrote:
what i mean by WINDOWS ASCII is windows compatiable string. that what
was your problem right? you were not able to get DOS ASCII stirng
exactly in WINDOWS string. am i right?


As Jon said, there's no Windows ASCII, nor a DOS ASCII. There's only
ASCII. There's also no such thing as a Windows compatible string. It's
all just a matter of using the correct encoding.

Cheers,
--
http://www.joergjooss.de
mailto:ne****** **@joergjooss.d e
Dec 17 '05 #9
Lucky <tu************ @gmail.com> wrote:
what i mean by WINDOWS ASCII is windows compatiable string. that what
was your problem right? you were not able to get DOS ASCII stirng
exactly in WINDOWS string. am i right?


"DOS ASCII" and "WINDOWS ASCII" aren't precisely defined terms though.
DOS used lots of different default code pages depending on your region,
and so does Windows.

--
Jon Skeet - <sk***@pobox.co m>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too
Dec 17 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
1882
by: duzos duzos | last post by:
i need to connect to a dbf database with ansi/oem encoding the connection is ok but i have problem with page encoding the characters don't display as they should! does anyone have any suggestions?? *** Sent via Developersdex http://www.developersdex.com *** Don't just participate in USENET...get rewarded for it!
37
10130
by: chandy | last post by:
Hi, I have an Html document that declares that it uses the utf-8 character set. As this document is editable via a web interface I need to make sure than high-ascii characters that may be accidentally entered are properly represented when the document is served. My programming language allows me to get the ascii value for any individual...
2
6190
by: Martín Marconcini | last post by:
Hello there, I'm writting (or trying to) a Console Application in C#. I has to be console. I remember back in the old days of Cobol (Unisys), Clipper and even Basic, I used to use a program (its name i cannot recall now...) where I designed the "screen" using this "program" and then saved it into an ASCII file. (thus, using 'extended'...
3
3031
by: sjoshi | last post by:
I'm doig a test using XP English with LocalSettings set to Russian. When trying to open an XML file with ANSI encoding, I get errors. When I change the encoding to UTF8, I can read the file successfully. I'm wondering why this happens. Any help is appreciated. thanks Sunit
4
19001
by: Nick | last post by:
Hi, I am trying to output a string of chinese characters as a text file. When I open a file for writing from VB, the file is automatically set to UTF-8 encoding (can tell by opening the file from notepad). However, when I open this file from a Chinese program that does not support unicode, garbage is displayed. So what I have to do is...
4
14262
by: Richard | last post by:
I need to use ANSI encoding in VB.NET, but can't seem to find it, can anyone help, I can only find these ASCII UTF7 UTF8 default BigEndianUnicode Unicode, and a method getEncoding(codepage as integer),
0
7639
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main...
0
7562
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language...
0
7855
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. ...
0
8074
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that...
0
7926
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the...
1
5465
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes...
0
5181
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert...
0
3594
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
2058
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.