Stringkodierung japanisches System

31/05/2008 - 14:38 von Jens Müller | Report spam
Auf Systemen mit Einstellung für Nicht-Unicodeprogrammen auf Japanisch führt
Code (1) für die Erstellung eines Zufallsstrings zu Problemen (der String
kommt nach Senden übers Netzwerk zu lang an), wàhrend Code (2) funktioniert.

Auch wenn ich nun eine Lösung habe, würde mich der Hintergrund
interessieren.

(1)
Dim sTemp as String
Randomize Timer
sTemp = ""
For i = 0 To 31
sTemp = sTemp & Chr(Int(Rnd * 256))
Next i

(2)
Dim sTemp as String
Dim sTempArr(31) As Byte
Randomize Timer
For i = 0 To 31
sTempArr(i) = Int(Rnd * 256)
Next i

sTemp = StrConv(sTempArr, vbUnicode)
 

Lesen sie die antworten

#1 Schmidt
31/05/2008 - 16:54 | Warnen spam
"Jens Müller" schrieb im Newsbeitrag
news:
Auf Systemen mit Einstellung für Nicht-Unicodeprogrammen auf Japanisch


führt
Code (1) für die Erstellung eines Zufallsstrings zu Problemen (der String
kommt nach Senden übers Netzwerk zu lang an), wàhrend Code (2)


funktioniert.

Auch wenn ich nun eine Lösung habe, würde mich der Hintergrund
interessieren.



Möglicherweise benutzt StrConv in seinem dritten (optionalen)
Parameter (wenn ausgelassen) eine andere LocaleID,
als die Chr()-SingleChar-Konvertierungsroutine intern benutzt.

Das könntest Du ja mal ganz einfach nachprüfen,
indem Du den Wert von AscW in einer Schleife
von 0 - 255 auf Deinem japanisch eingestellten
System vergleichst.

Dim i&, S$, B(0 To 255) As Byte
For i = 0 To 255
B(i) = i
S = S & Chr(i)
Next i
MsgBox S = StrConv(B, vbUnicode)

Bei mir (in Landessprache eingestellt) ergibt sich True.
Was kommt auf Deinem System heraus?

Olaf

Ähnliche fragen