Autor Thema: Problem bei ASCII Konvertierung unter Linux (Asc)  (Gelesen 2700 mal)

Weixel

  • Gast
Hallo @Notes-Gemeinde,

Ich habe Probleme bei der Funktion 'Asc' , welche einen String (bzw. dessen einzelne Zeichen) zu Ihrem ASCII-Wert konvertieren soll . Mit Hilfe dieser Werte findet eine Überprüfung des Strings statt.

Code
...

strContent = "ävsü"
length = Len(strContent)	
	
     For cnt = 0 To (length-1)
		
         sign = Left$(Right$(strContent, length - cnt), 1)
         tmpASC = Asc(sign)
         
         Msgbox "ASCII-Wert : " + tmpASC

     Next

...

Das ganze hat mir folgendes auf einem Windows-Server (2003) ausgegeben :

- "ASCII-Wert : 132"
- "ASCII-Wert : 118"
- "ASCII-Wert : 115"
- "ASCII-Wert : 129"

Nun mein Problem, die Ausgabe sieht auf einem Linux-Server (Suse Linux ES 11) wie folgt aus :

- "ASCII-Wert : 50084"
- "ASCII-Wert : 118"
- "ASCII-Wert : 115"
- "ASCII-Wert : 50108"

So wie ich sehe, gibt die Asc-Funktion mir einfach für die Umlaute den dezimalen UTF-8 Wert zurück.

Hat hier jemand ein paar Tipps/Lösungsansätze ?

Achja, wir verwenden 8.5.1 FP3

Vielen Dank schonmal!

LG
Patrick

« Letzte Änderung: 13.08.10 - 08:27:46 von Weixel »

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Problem bei ASCII Konvertierung unter Linux (Asc)
« Antwort #1 am: 12.08.10 - 16:42:58 »
Works as designed. Aus der Designer-Hilfe zu Asc():
Zitat
If LotusScript is running on a native ASCII platform, the code represents the character value in the platform's native character set.

Da kannst nur entweder Linux auf das Windows-Codeset (Windows 1250 oder ähnliches) bringen oder vice versa.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem bei ASCII Konvertierung unter Linux (Asc)
« Antwort #2 am: 12.08.10 - 16:49:42 »
Oder man baut sich - wenn die locale settings nicht geändert werden sollen - eine eigene "ASC"-Funktion (255 Zeichen in einem String, Position ermitteln, im Array mit den eigendefinierten Werten nachschauen).

Was anderes: Warum baust Du solch ein verzwurbelstes Konstrukt mit Left / Right, anstatt gleich Mid$ zu nehmen? Magst Du es gerne kompliziert?  ;)

Bernhard

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Problem bei ASCII Konvertierung unter Linux (Asc)
« Antwort #3 am: 12.08.10 - 16:53:23 »
Die Frage ist eher - wo kommt der String her? Benutzereingabe, aus eine File, ....
Notes ist ja intern recht agnostisch, was das betrifft. Und beim Einlesen von einem file könnte man ja in bestimmten Fällen ein Character Set angeben.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Weixel

  • Gast
Re: Problem bei ASCII Konvertierung unter Linux (Asc)
« Antwort #4 am: 13.08.10 - 07:45:56 »
Die Frage ist eher - wo kommt der String her? Benutzereingabe, aus eine File, ....

Der verwendetet String kommt direkt aus einem Notes-Textfeld, welches durch eine Usereingabe gefüllt wird.

Was anderes: Warum baust Du solch ein verzwurbelstes Konstrukt mit Left / Right, anstatt gleich Mid$ zu nehmen? Magst Du es gerne kompliziert?  ;)

Die Funktionalität besteht schon was länger und wurde von einer anderen Entwicklerin aufgebaut ;-) Bin erst durch die Umstellung auf Linux-Server und auftreten des obigen Problems darauf gestossen. Aber ich stimme dir voll und ganz zu Bernhard ^^

Ich werde nun entweder , wie von M3 vorgeschlagen, Linux auf das Windows-Codeset umstellen, oder evtl. die Funktionalität mit Unicode überprüfen 
Code
Uni($String)



Weixel

  • Gast
Re: Problem bei ASCII Konvertierung unter Linux (Asc)
« Antwort #5 am: 13.08.10 - 08:27:09 »
Habe das ganze jetzt, über eine zusätzliche Prüfung über Unicode-Konvertierung ergänzt und die Umlaute funktionieren tadellos :

Code
tmpUNI  = Uni(sign)
	
If ((tmpUNI = 196) Or (tmpUNI = 214) Or (tmpUNI = 220) Or (tmpUNI = 228)_
   Or (tmpUNI = 246) Or (tmpUNI = 252) Or (tmpUNI = 223)) Then
	    'Erlaube ä,ö,ü,Ä,Ö,Ü,ß
End If

Danke für Eure Hilfe

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz