Asp classic 在VBScript中输出GUID会忽略它后面的所有文本

Asp classic 在VBScript中输出GUID会忽略它后面的所有文本,asp-classic,vbscript,guid,Asp Classic,Vbscript,Guid,我正在使用TypeLib创建一个用于经典ASP应用程序的GUID。然而,即使是一个简单的测试,例如将GUID写入屏幕,也会给我带来问题——它打印GUID,但会忽略它后面的所有内容(例如HTML标记、其他单词、任何内容) 下面是测试这一点的基本代码: Set typeLib = Server.CreateObject("Scriptlet.TypeLib") myGuid = typeLib.Guid Response.Write myGuid & " is the new GUID" S

我正在使用TypeLib创建一个用于经典ASP应用程序的GUID。然而,即使是一个简单的测试,例如将GUID写入屏幕,也会给我带来问题——它打印GUID,但会忽略它后面的所有内容(例如HTML标记、其他单词、任何内容)

下面是测试这一点的基本代码:

Set typeLib = Server.CreateObject("Scriptlet.TypeLib")
myGuid = typeLib.Guid
Response.Write myGuid & " is the new GUID"
Set typeLib = Nothing

这将显示类似于{9DDB27D1-F034-41D7-BB88-D0D811DB91CE}的内容,就是这样;文本的其余部分将被忽略,不会被写出。但是,如果我硬编码该GUID值并从变量引用它,那么其余的文本就可以了。在显示之前,我尝试过显式转换为字符串值,但仍然会发生这种情况。

GUID是一个结构而不是字符串,您需要添加一个ToString()方法将其作为字符串输出


我似乎已经解决了我自己的问题。。它在文本中添加了一些额外的内容,因此我必须:

myGuid = Left(myGuid, Len(myGuid)-2)

现在输出很好。奇怪。

我用这样的东西

Function GetGuid() 
        Set TypeLib = CreateObject("Scriptlet.TypeLib") 
        GetGuid = Left(CStr(TypeLib.Guid), 38) 
        Set TypeLib = Nothing 
End Function 

它在GUID的末尾添加vbNullChar或Chr(0)。替换(myGuid,Chr(0),“”)将修复它。比使用Left或Mid函数更好。

我认为我不能在VBScript中使用ToString;尝试使用typeLib.Guid.ToString()会给我一个错误。如果Guid真的是一个结构,那就没那么奇怪了。Left函数必须将其转换为字符串,以便使用它并返回字符串。Scriptlet.TypeLib.Guid提供以null结尾的字符串。在从你的代码到屏幕的过程中,使用空终止,从而停止在中间输出东西。哦,感谢上帝,有人已经拥有了这个。
Function GetGuid() 
        Set TypeLib = CreateObject("Scriptlet.TypeLib") 
        GetGuid = Left(CStr(TypeLib.Guid), 38) 
        Set TypeLib = Nothing 
End Function