Domino 9 und frühere Versionen > ND8: Entwicklung
Problem bei ASCII Konvertierung unter Linux (Asc)
Weixel:
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
...
--- Ende Code ---
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
m3:
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.
--- Ende Zitat ---
Da kannst nur entweder Linux auf das Windows-Codeset (Windows 1250 oder ähnliches) bringen oder vice versa.
koehlerbv:
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
m3:
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.
Weixel:
--- Zitat von: m3 am 12.08.10 - 16:53:23 ---Die Frage ist eher - wo kommt der String her? Benutzereingabe, aus eine File, ....
--- Ende Zitat ---
Der verwendetet String kommt direkt aus einem Notes-Textfeld, welches durch eine Usereingabe gefüllt wird.
--- Zitat von: koehlerbv am 12.08.10 - 16:49:42 ---Was anderes: Warum baust Du solch ein verzwurbelstes Konstrukt mit Left / Right, anstatt gleich Mid$ zu nehmen? Magst Du es gerne kompliziert? ;)
--- Ende Zitat ---
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)
--- Ende Code ---
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln