[ASP.NET] Strings moeten gewoon ASCII

Pagina: 1
Acties:

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:32

_Thanatos_

Ja, en kaal

Topicstarter
Ik heb een algoritme (heb ik niet geschreven) dat met string een bepaalde berekening uitvoert en een code teruggeeft. Hoe dit werkt is niet relevant, want wel relevant is, is dat het algoritme ASCII karakters in de string verwacht. En laat ik nou het idee hebben dat strings in ASP.NET geen ASCII zijn.

Hoe maak ik er dus gewoon standaard ordinair alledaags normaal ASCII van? Ik heb al de Encoding class geprobeerd de string te laten converteren van unicode naar ascii, maar dan worden alle 'speciale' tekens vraagtekens.

Wie helpt me verder? :>

日本!🎌


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 17:14
ASCII bevat nou eenmaal geen speciale karakters (oftewel diakrieten). ASCII = American Standard ... en in het engels worden geen accenten gebruik.

Je moet zelf beslissen wat er dus met de non-ASCII Unicode karakters moet gebeuren.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:32

_Thanatos_

Ja, en kaal

Topicstarter
Nouja, het gaat om karakters als ô en è, dat soort simpele dingen. In het aloude DOS worden die al gebruikt, en dat was ASCII toch?

日本!🎌


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18-08 21:00

Creepy

Tactical Espionage Splatterer

_Thanatos_ schreef op 07 October 2003 @ 20:04:
Nouja, het gaat om karakters als ô en è, dat soort simpele dingen. In het aloude DOS worden die al gebruikt, en dat was ASCII toch?
Dat is Extended ASCII en daar is geen standaard voor (vandaar de codepages).
ASCII is 7 bits. Dus 128 tekens in totaal. Extended ASCII gebruikt ook het 8ste bit om zo in totaal 256 tekens te kunnen gebruiken. Tekens 128 en groter kunnen dus wel eens verschillend zijn op een ander systeem.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:32

_Thanatos_

Ja, en kaal

Topicstarter
Ok, dan zal het algoritme aangepast moet worden. Bedankt iig.

日本!🎌


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 17:14
Nou ja, ASCII was 32 control characters en 96 tekens. ISO 8859-x is nog eens 32 control chars en 96 extra tekens, welke 96 dat zijn hangt af van de variant. 8859-1 aka Latin-1 is de meest gebruikelijke.
Windows doet het overigens intern iets anders; die heeft wel de 192 tekens van Latin-1 maar niet de 32 extra control characters.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • demonite
  • Registratie: April 2000
  • Laatst online: 29-05 08:55

demonite

the way is up


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Je kan op zich gewoon gebruik maken van een codepage die wel 8 bits is.
Je kan bijvoorbeeld op de volgende manier naar de ISO 8859-1 Latin I encoding gaan
C#:
1
2
int latinCodepage = 28591;
byte[] bytes= System.Text.Encoding.GetEncoding( latinCodepage ).GetBytes( text );

Dit is natuurlijk alleen correct als de text aan de Latin codepage voldoet. Volgens mij is dit de standaard windows codepage.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 17:14
@rwb: kijk nou eens naar de posts die er al staan. Windows is dus niet Latin-1, de overlap is 7/8. De extra 32 karakters uit de Windows karakterset zullen dus verloren gaan als je naar Latin-1 mapt.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
MSalters schreef op 08 oktober 2003 @ 12:18:
@rwb: kijk nou eens naar de posts die er al staan. Windows is dus niet Latin-1, de overlap is 7/8. De extra 32 karakters uit de Windows karakterset zullen dus verloren gaan als je naar Latin-1 mapt.
Oops sorry inderdaad niet helemaal goed gelezen. Maar dan kan je nog steeds die methode gebruiken. Je moet alleen even kijken in welke codepage het best overeen komt. Of natuurlijk je algoritme aanpassen zodat hij ook andere encodings aankan als (extended) ASCII

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”

Pagina: 1