Skip Menu |
Report information
Id: 134286
Status: open
Priority: 0/
Queue: perl5

Owner: Nobody
Requestors: tonyc <tony [at]>

Operating System: (no value)
PatchStatus: (no value)
Severity: low
Type: core
Perl Version: 5.28.1
Fixed In: (no value)

From: Tony Cook <tony [...]>
Date: Mon, 15 Jul 2019 15:31:00 +1000
To: perlbug [...]
Subject: [meta] Win32 Unicode support
Download (untitled) / with headers
text/plain 4.6k
This is a bug report for perl from, generated with the help of perlbug 1.41 running under perl 5.28.1. ----------------------------------------------------------------- [Please describe your issue here] Perl typically uses so called "ANSI" APIs, due to compatibility with other platforms, eg. calling unlink() is cross-platform, and to a certain extent works in Unicode locales (using the encoded bytes rather than characters), but the equivalents on Win32 don't work. chcp 65001 isn't a solution, since pretty much everything but console output will still be in the system code page. So this is a meta ticket covering tickets improving Perl's Win32 Unicode support. Any changes need to be switchable (so a user with old ANSI encoded filenames for example don't lose a bunch of work), and need to not break other platforms. I can see at least the following issues: - command line arguments - filenames across many different operators - process creation (system, exec, readpipe/qx(), pipe open()) - environment variables - console (maybe) - many similar changes in bundled modules Discussion is welcome, patches that satsify the above requirements more so. [Please do not change anything below this line] ----------------------------------------------------------------- --- Flags: category=core severity=low --- Site configuration information for perl 5.28.1: Configured by strawberry-perl at Sun Dec 2 14:25:09 2018. Summary of my perl5 (revision 5 version 28 subversion 1) configuration: Platform: osname=MSWin32 osvers=10.0.17134.407 archname=MSWin32-x64-multi-thread uname='Win32 strawberry-perl #1 Sun Dec 2 14:24:00 2018 x64' config_args='undef' hint=recommended useposix=true d_sigaction=undef useithreads=define usemultiplicity=define use64bitint=define use64bitall=undef uselongdouble=undef usemymalloc=n default_inc_excludes_dot=define bincompat5005=undef Compiler: cc='gcc' ccflags =' -s -O2 -DWIN32 -DWIN64 -DCONSERVATIVE -D__USE_MINGW_ANSI_STDIO -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields' optimize='-s -O2' cppflags='-DWIN32' ccversion='' gccversion='7.1.0' gccosandvers='' intsize=4 longsize=4 ptrsize=8 doublesize=8 byteorder=12345678 doublekind=3 d_longlong=define longlongsize=8 d_longdbl=define longdblsize=16 longdblkind=3 ivtype='long long' ivsize=8 nvtype='double' nvsize=8 Off_t='long long' lseeksize=8 alignbytes=8 prototype=define Linker and Libraries: ld='g++.exe' ldflags ='-s -L"C:\sperl-\perl\lib\CORE" -L"C:\sperl-\c\lib"' libpth=C:\sperl-\c\lib C:\sperl-\c\x86_64-w64-mingw32\lib C:\sperl-\c\lib\gcc\x86_64-w64-mingw32\7.1.0 libs= -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32 perllibs= -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32 libc= so=dll useshrplib=true libperl=libperl528.a gnulibc_version='' Dynamic Linking: dlsrc=dl_win32.xs dlext=xs.dll d_dlsymun=undef ccdlflags=' ' cccdlflags=' ' lddlflags='-mdll -s -L"C:\sperl-\perl\lib\CORE" -L"C:\sperl-\c\lib"' --- @INC for perl 5.28.1: c:/sperl- c:/sperl- c:/sperl- --- Environment for perl 5.28.1: HOME (unset) LANG (unset) LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=c:\sperl-\perl\site\bin;c:\sperl-\perl\bin;c:\sperl-\c\bin;C:\Program Files\Microsoft MPI\Bin\;C:\Program Files (x86)\Common Files\Intel\Shared Files\cpp\bin\Intel64;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\dotnet\;C:\Program Files\Git\cmd;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Users\Tony\AppData\Local\Microsoft\WindowsApps;C:\Users\Tony\AppData\Local\GitHubDesktop\bin PERL_BADLANG (unset) SHELL (unset)
RT-Send-CC: perl5-porters [...]
Download (untitled) / with headers
text/plain 188b
I've been waiting. Python and Ruby are already possible. I think it will not be helpful, I have built in the past by myself.
Subject: Re: [perl #134286] [meta] Win32 Unicode support
To: perlbug-followup [...]
Date: Thu, 18 Jul 2019 14:50:18 +0200
From: pali [...]
Download (untitled) / with headers
text/plain 614b
Show quoted text
> I can see at least the following issues: > ... > - filenames across many different operators > - process creation (system, exec, readpipe/qx(), pipe open()) > ... > Discussion is welcome, patches that satsify the above > requirements more so.
Same problem is also on Linux systems. I already created ticket where is discussion how to handle. I proposed some solution (which could work for both Windows and Linux systems) but seems other people do not like it. (PS: Please CC me for future discussion as I do not know how can I add myself to CC list on RT)

This service is sponsored and maintained by Best Practical Solutions and runs on infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at