Edit report at https://bugs.php.net/bug.php?id=81616&edit=1
ID: 81616
Updated by: cmb@php.net
Reported by: gblanchet at cofomo dot com
Summary: Windows binaries comes by default with libidn
instead of libidn2
-Status: Open
+Status: Not a bug
Type: Bug
-Package: *Unicode Issues
+Package: cURL related
Operating System: Windows
PHP Version: 8.0.12
-Assigned To:
+Assigned To: cmb
Block user comment: N
Private report: N
New Comment:
As far as I know, only Windows IDN APIs are supported on
Windows[1]. These are not disabled for our builds (there is an
apparently erroneous USE_IDN=yes, but since ENABLE_IDN defaults to
yes, that shouldn't be an issue).
So there's nothing we can do.
[1] <https://github.com/curl/curl/blob/master/winbuild/README.md?plain=1#L90-L91>
Previous Comments:
------------------------------------------------------------------------
[2021-11-12 11:43:57] gblanchet at cofomo dot com
Description:
------------
WHAT I DID:
I installed PHP8 on my Windows machine using binaries from https://windows.php.net/download
WHAT I WANTED TO HAPPEN:
I wanted to use the cURL extension to query an IDN hostname.
WHAT ACTUALLY HAPPENED:
I realized cURL was using the old IDNA2003 protocol instead of the new one: IDN2008 because the
German letter "Ã" was translated to "ss" in the a-label queried. I check the
curl_version() and I found the cause: on Windows, PHP8 seems to be bundled with libidn instead of
libidn2. Please ensure the cURL extension is compiled with libidn2 instead of libidn to generate the
Windows binaries.
Test script:
---------------
php > var_dump(curl_version());
php shell code:1:
array(16) {
[...]
'version' =>
string(6) "7.76.1"
[...]
'libidn' =>
string(0) ""
[...]
}
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=81616&edit=1