On Mon, 13 Sep 2010, Ludwig, Michael wrote:
> > -----Original Message-----
> > On Behalf Of Ludwig, Michael
> > Subject: PerlScript/ASP: Unicode issue
>
> > And here's the dysfunctional PerlScript code I derived the
> > VBScript version from:
> >
> > <%@ language=perlscript codepage=65001 %>
> > <%
> > use strict;
> > use warnings;
> > # use utf8; # messes up German and French as well
> > use Win32::OLE;
> > use constant DOMCLASS => "Msxml2.DOMDocument.6.0";
> > our( $Server, $Response, $Request );
> > my %OLEoptions = ( Warn => 3 );
> > # $OLEoptions{CP} = Win32::OLE::CP_UTF8; # no effect
> > Win32::OLE->Option( %OLEoptions );
>
> One clarification for the archives:
>
> While the effect of Win32::OLE->Option(CP => Win32::OLE::CP_UTF8)
> was overridden in this case by the PerlScript engine eliminating
> all characters not in ANSI (CP_ACP), as Jan explained in one of
That is not quite correct either. The part where the Perl source
code from .asp pages is turned into CP_ACP is an internal thing
inside the PerlScript implementation and does not involve Win32::OLE
at all. It is all C++ code calling into Windows API and COM code
directly.
> his replies, it's not at all true that this option does not have
> an effect in the general case as implied by my code sample; on
> the contrary, it does work, and is essential for Unicode text
> processing.
On Mon, 13 Sep 2010, Ludwig, Michael wrote:
>
> > -----Original Message-----
> > From: Jan Dubois
> > On Fri, 10 Sep 2010, Ludwig, Michael wrote:
> > > Is it %ActivePerl%\bin\PerlSE.dll implementing PerlScript?
> >
> > Yes. There isn't anything you can do with it directly
> > though; it is a registered COM component that must be
> > instantiated via COM as an ActiveX Scripting Engine... All
> > scripting hosts (e.g. ASP, WSH, ...) will find it via the
> > registry settings by its name "PerlScript".
>
> HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PerlScript
> HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PerlScript\CLSID
>
> The latter key contains:
>
> (Standard) REG_SZ {F8D77580-0F09-11d0-AA61-3C284E000000}
>
> Which is probably the means to locate the DLL?
Yes, using standard COM mechanisms, i.e. by looking up
HKEY_CLASSES_ROOT\CLSID\{F8D77580-0F09-11D0-AA61-3C284E000000}\InprocServer32
Cheers,
-Jan
_______________________________________________
ActivePerl mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs