Req #73716 [Fbk]: PHP 7.1's CHCP switching in console should be optional

From: Date: Wed, 14 Dec 2016 01:28:05 +0000
Subject: Req #73716 [Fbk]: PHP 7.1's CHCP switching in console should be optional
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-205977@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=73716&edit=1

 ID:                 73716
 Updated by:         yohgaki@php.net
 Reported by:        anrdaemon at freemail dot ru
 Summary:            PHP 7.1's CHCP switching in console should be
                     optional
 Status:             Feedback
 Type:               Feature/Change Request
 Package:            Output Control
 Operating System:   Windows
 PHP Version:        7.1.0
 Block user comment: N
 Private report:     N

 New Comment:

> console corruption the moment I try this config with newly installed PHP 7.1. Since half the
> extensions can't be loaded.

1) I guess you installed half of extensions under multibyte pathname. Is this correct?

2) I suppose if you locate these extensions to single byte pathname, then they are loaded. Is this
correct?

3) I use Windows version on occasion so I could be wrong, but doesn't multibyte pathname cause
file access problem on older PHPs?

4) Your problem is code page change on Windows, so you are suggesting enable it like

php --chcp some.php

on Windows? (or --chcp-off to disable)

5) In case of abnormal exit, user may execute "chcp CODEPAGE". This could be documentation
problem. Is this enough for you?


Previous Comments:
------------------------------------------------------------------------
[2016-12-13 19:29:46] anrdaemon at freemail dot ru

"Extensions not loaded" with subsequent process interruption was how I first stumbled upon
this issue. A worst case scenario, if you wish.
I since found the way to reliable trigger it under normal circumstances.
Asking for "reproduction with cmd" isn't fair, CMD itself doesn't update console
buffer in realtime (nor is CMD strictly required to be present, to begin with… 99% of the time
I don't use it at all, running PHP scripts straight from other programs though its
association).

------------------------------------------------------------------------
[2016-12-13 18:31:29] ab@php.net

So it doesn't load extension, while under Far manager? What is internal redirect? Preferably it
should be reproducible with the pure cmd.

Thanks.

------------------------------------------------------------------------
[2016-12-13 18:24:01] anrdaemon at freemail dot ru

Reproduction case?
Get Far manager (+FAR Commands plugin, which is part of standard package -
farmanager.com/download.php ), start PHP 7.1 with internal redirect…

view:<? php -d internal_encoding=utf-8 -r "sleep(3);"

…observe console corruption for the duration of script execution.

May be not the most self-container demonstration, but very much visual.
Works equally well with CP437.

------------------------------------------------------------------------
[2016-12-13 17:41:51] ab@php.net

@anrdaemon, it would be nice, if you could put your language down to the technical level from your
shame theory. You say " half the extensions can't be loaded" - could you post some
reproduce case for this, that can be debugged?

Thanks.

------------------------------------------------------------------------
[2016-12-13 16:01:03] anrdaemon at freemail dot ru

That's just reinforcing my point, that single-minded pseudosolutions are not going to cut it.
Terminal encoding is a known complex problem, and by now people developed a treasure trove of
knowledge in dealing with it.
Why PHP has to "invent" its own ways? The "one size fits all" approach
didn't quite worked for several last centuries only on my memory. I don't want to see
anyone trying to walk that road only to be covered in shame. Yet again.

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=73716


--
Edit this bug report at https://bugs.php.net/bug.php?id=73716&edit=1


Thread (23 messages)

« previous php.bugs (#205977) next »