致力于将Visual Basic SHA-256加密例程转换为在LotusScript中工作。
运行得很好,除了VB的AscB命令。
Found:“使用AscB函数返回包含字节数据的字符串的第一个字节。”
没有找到在LotusScript中做同样事情的方法。
请参见LS字节命令:"CByte返回一个已转换为字节的表达式。“
不要让它只返回表达式的第一个字节。
有什么建议吗?
德里克
发布于 2012-02-25 07:06:52
AscB仅适用于采用单字节字符编码的字符串。所有的LotusScript字符串数据都是用UTF16双字节编码表示的Unicode。
Unicode Uni()函数返回一个包含LotusScript字符整数值的长整型。由于输入是双字节字符,因此Uni()返回的值的范围是从0到65535。如果您想要获取两个字节中每个字节的值,如下代码将完成此任务:
Dim ws As New NotesUIWorkspace
Dim s1 As String
Dim u1 As Long
Dim u2 As Long
Dim lowbyte As Integer
Dim highbyte As Integer
Dim b1 As Byte
Dim b2 as Byte
s1 = "Ʃ"
u1 = Uni(s1)
lowbyte = u1 Mod 256
highbyte = (u1 - lowbyte) / 256
b1 = Cbyte(lowbyte)
b2 = Cbyte(highbyte)
Call ws.Prompt(prompt_ok,"test",s1 + " " + Cstr(Cint(b1)) + " " + Cstr(Cint(b2)))发布于 2012-02-25 06:39:04
Asc、LeftB和RightB能满足你的需求吗?
在我的测试中。
Lenb("A") = 2
Leftb("A", 1) = "A"
Asc(Leftb("A", 1)) = 65
Leftb("A", 2) = "A"
Asc(Leftb("A", 2)) = 65
Asc(Rightb(Leftb("A", 2), 1)) = 0 https://stackoverflow.com/questions/9438305
复制相似问题