RE: PerlScript/ASP: Unicode issue

"Jan Dubois" <[email protected]>
Newsgroups gmane.comp.lang.perl.active-perl
Organization ActiveState Software Inc
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.