ID:               30195
 Comment by:       moleary at preg dot org
 Reported By:      percy at savant dot us
 Status:           Open
 Bug Type:         *Directory/Filesystem functions
 Operating System: windows xp/2003
 PHP Version:      5CVS-2004-09-22 (dev)
 New Comment:

This is also the case for Japanese characters on the Windows platform. 
A note in the PHP manual says that opendir() uses ISO 8859-1 by default
on WIndows installations.

REPRO:
1) Install East Asian language supprto to XP through the Regioanl
languages control panel
2) add a file with Japanese characters as the name (I copied a couple
strings from the asahi.com web site)

ACTUAL:
1) These same characters as text will be presented properly with the
proper code page and/or header encoding.
2) The characters are not correctly parsed when looping through the
contents of an opendir() on the directory in which you placed the file
you created under the repro steps.

EXPECTED:
Ability to define charset for opendir(), or at very least use a more
standard UTF-8 instead of ISO 8859-1 so that Asian named files can have
their proper names returned by opendir()


Previous Comments:
------------------------------------------------------------------------

[2004-12-27 15:39:53] dev at glossword dot info

There is the same problem with php 5.0.2.

How to reproduce:

1. Create file wøاアいנ.txt (urlencoded string
is w%d1%88%d8%a7%e3%82%a2%e3%81%84%d7%a0.txt)
2. Read directory, readdir().
3. You'll get wø????.txt (w%c3%b8????.txt) instead of proper
name.

With this bug, it is impossible to manage multilingual file names.

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

[2004-11-18 18:50:04] phoenix95 at hotmail dot com

I'm not 100% sure we have the same problem... What I experienced is
readdir choking on directory names with special characters like an e
acute.

I use PHP 4.3.9 in debug mode from the Komodo v.3 IDE on Windows XP Pro
SP2 english. This happens with the PEAR package
File_Find::mapTreeMultiple().

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

[2004-09-23 16:51:58] percy at savant dot us

The code:
$dir    = 'test';
$files1 = scandir($dir);

print_r($files1);

Result:
subdir
¤¤¤å

a
dkeij

PHPinfo:
System  Windows NT IBM99L9V8F 5.1 build 2600  
Build Date  Aug 12 2004 23:30:01  
Configure Command  cscript /nologo configure.js "--with-gd=shared"
"--enable-snapshot-build"  
Server API  ISAPI  
Virtual Directory Support  enabled  
Configuration File (php.ini) Path  C:\WINDOWS\php.ini  
PHP API  20031224  
PHP Extension  20040412  
Zend Extension  220040412  
Debug Build  no  
Thread Safety  enabled  
IPv6 Support  enabled  
Registered PHP Streams  php, file, http, ftp, compress.zlib  
Registered Stream Socket Transports  tcp, udp  

 This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.0.1, Copyright (c) 1998-2004 Zend Technologies
 


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

PHP Credits

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

Configuration
PHP Core
Directive Local Value Master Value 
allow_call_time_pass_reference Off Off 
allow_url_fopen On On 
always_populate_raw_post_data Off Off 
arg_separator.input & & 
arg_separator.output & & 
asp_tags Off Off 
auto_append_file no value no value 
auto_globals_jit On On 
auto_prepend_file no value no value 
browscap no value no value 
default_charset utf-8 utf-8 
default_mimetype text/html text/html 
define_syslog_variables Off Off 
disable_classes no value no value 
disable_functions no value no value 
display_errors Off Off 
display_startup_errors Off Off 
doc_root no value no value 
docref_ext no value no value 
docref_root no value no value 
enable_dl On On 
error_append_string no value no value 
error_log no value no value 
error_prepend_string no value no value 
error_reporting 2047 2047 
expose_php On On 
extension_dir c:\php\ext c:\php\ext 
file_uploads On On 
highlight.bg #FFFFFF #FFFFFF 
highlight.comment #FF8000 #FF8000 
highlight.default #0000BB #0000BB 
highlight.html #000000 #000000 
highlight.keyword #007700 #007700 
highlight.string #DD0000 #DD0000 
html_errors On On 
ignore_repeated_errors Off Off 
ignore_repeated_source Off Off 
ignore_user_abort Off Off 
implicit_flush Off Off 
include_path .;C:\php5\pear .;C:\php5\pear 
log_errors On On 
log_errors_max_len 1024 1024 
magic_quotes_gpc Off Off 
magic_quotes_runtime Off Off 
magic_quotes_sybase Off Off 
mail.force_extra_parameters no value no value 
max_execution_time 30 30 
max_input_time 60 60 
open_basedir no value no value 
output_buffering 4096 4096 
output_handler mb_output_handler mb_output_handler 
post_max_size 8M 8M 
precision 14 14 
register_argc_argv Off Off 
register_globals Off Off 
register_long_arrays On On 
report_memleaks On On 
report_zend_debug On On 
safe_mode Off Off 
safe_mode_exec_dir no value no value 
safe_mode_gid Off Off 
safe_mode_include_dir no value no value 
sendmail_from no value no value 
sendmail_path no value no value 
serialize_precision 100 100 
short_open_tag On On 
SMTP localhost localhost 
smtp_port 25 25 
sql.safe_mode Off Off 
track_errors Off Off 
unserialize_callback_func no value no value 
upload_max_filesize 10M 10M 
upload_tmp_dir no value no value 
user_dir no value no value 
variables_order GPCS GPCS 
xmlrpc_error_number 0 0 
xmlrpc_errors Off Off 
y2k_compliance On On 
zend.ze1_compatibility_mode Off Off 


bcmath
BCMath support  enabled  


calendar
Calendar support  enabled  


com_dotnet
COM support enabled 
DCOM support disabled 
.Net support enabled 

Directive Local Value Master Value 
com.allow_dcom 0 0 
com.autoregister_casesensitive 1 1 
com.autoregister_typelib 0 0 
com.autoregister_verbose 0 0 
com.code_page no value no value 
com.typelib_file no value no value 


ctype
ctype functions  enabled  


dom
DOM/XML  enabled  
DOM/XML API Version  20031129  
libxml Version  2.6.11  
HTML Support  enabled  
XPath Support  enabled  
XPointer Support  enabled  
Schema Support  enabled  
RelaxNG Support  enabled  


exif
EXIF Support  enabled  
EXIF Version  1.4 $Id: exif.c,v 1.162 2004/03/16 20:58:01 derick Exp $ 

Supported EXIF Version  0220  
Supported filetypes  JPEG,TIFF  


ftp
FTP support  enabled  


gd
GD Support  enabled  
GD Version  bundled (2.0.28 compatible)  
FreeType Support  enabled  
FreeType Linkage  with freetype  
FreeType Version  2.1.9  
GIF Read Support  enabled  
GIF Create Support  enabled  
JPG Support  enabled  
PNG Support  enabled  
WBMP Support  enabled  
XBM Support  enabled  


iconv
iconv support  enabled  
iconv implementation  "libiconv"  
iconv library version  1.9  

Directive Local Value Master Value 
iconv.input_encoding ISO-8859-1 ISO-8859-1 
iconv.internal_encoding ISO-8859-1 ISO-8859-1 
iconv.output_encoding ISO-8859-1 ISO-8859-1 


ISAPI
Server Variable Value 
CONTENT_LENGTH  0  
PATH_TRANSLATED  c:\inetpub\wwwroot\al\phpinfo4debug.php  
REMOTE_ADDR  127.0.0.1  
REMOTE_HOST  127.0.0.1  
REQUEST_METHOD  GET  
SERVER_NAME  localhost  
SERVER_PORT  80  
SERVER_PROTOCOL  HTTP/1.1  
SERVER_SOFTWARE  Microsoft-IIS/5.1  
APPL_MD_PATH  /LM/W3SVC/1/ROOT  
APPL_PHYSICAL_PATH  c:\inetpub\wwwroot\  
INSTANCE_ID  1  
INSTANCE_META_PATH  /LM/W3SVC/1  
URL  /al/phpinfo4debug.php  
ALL_HTTP  HTTP_ACCEPT:image/gif, image/x-xbitmap, image/jpeg,
image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel,
application/vnd.ms-powerpoint, application/msword, */*
HTTP_ACCEPT_LANGUAGE:zh-tw,zh-hk;q=0.7,zh;q=0.3
HTTP_CONNECTION:Keep-Alive HTTP_HOST:localhost
HTTP_USER_AGENT:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;
(R1 1.5); .NET CLR 1.1.4322)
HTTP_COOKIE:PHPSESSID=s4pqtqvsrv49fv0ih7h8790g60
HTTP_ACCEPT_ENCODING:gzip, deflate  
HTTPS  off  
SCRIPT_NAME  /al/phpinfo4debug.php  
SERVER_PORT_SECURE  0  


libxml
libXML support  active  
libXML Version  2.6.11  
libXML streams  enabled  


mbstring
Multibyte Support  enabled  
Multibyte string engine  libmbfl  
HTTP input encoding translation  enabled  
Multibyte (japanese) regex support  enabled  
Multibyte regex (oniguruma) version  2.2.4  

mbstring extension makes use of "streamable kanji code filter and
converter", which is distributed under the GNU Lesser General Public
License version 2.1. 

Directive Local Value Master Value 
mbstring.detect_order UTF-8,BIG-5,GB2312,ASCII,SJIS,EUC-JP
UTF-8,BIG-5,GB2312,ASCII,SJIS,EUC-JP 
mbstring.encoding_translation On On 
mbstring.func_overload 7 7 
mbstring.http_input UTF-8,BIG-5,GB2312,SJIS,EUC-JP
UTF-8,BIG-5,GB2312,SJIS,EUC-JP 
mbstring.http_output UTF-8 UTF-8 
mbstring.internal_encoding UTF-8 UTF-8 
mbstring.language Neutral Neutral 
mbstring.substitute_character no value no value 


mysql
MySQL Support enabled 
Active Persistent Links  0  
Active Links  0  
Client API version  3.23.57  

Directive Local Value Master Value 
mysql.allow_persistent On On 
mysql.connect_timeout 60 60 
mysql.default_host no value no value 
mysql.default_password no value no value 
mysql.default_port no value no value 
mysql.default_socket no value no value 
mysql.default_user no value no value 
mysql.max_links Unlimited Unlimited 
mysql.max_persistent Unlimited Unlimited 
mysql.trace_mode Off Off 


odbc
ODBC Support enabled 
Active Persistent Links  0  
Active Links  0  
ODBC library  Win32  

Directive Local Value Master Value 
odbc.allow_persistent On On 
odbc.check_persistent On On 
odbc.default_db no value no value 
odbc.default_pw no value no value 
odbc.default_user no value no value 
odbc.defaultbinmode return as is return as is 
odbc.defaultlrl return up to 4096 bytes return up to 4096 bytes 
odbc.max_links Unlimited Unlimited 
odbc.max_persistent Unlimited Unlimited 


pcre
PCRE (Perl Compatible Regular Expressions) Support  enabled  
PCRE Library Version  4.5 01-December-2003  


session
Session Support  enabled  
Registered save handlers  files user sqlite  
Registered serializer handlers  php php_binary wddx  

Directive Local Value Master Value 
session.auto_start Off Off 
session.bug_compat_42 Off Off 
session.bug_compat_warn On On 
session.cache_expire 180 180 
session.cache_limiter nocache nocache 
session.cookie_domain no value no value 
session.cookie_lifetime 0 0 
session.cookie_path / / 
session.cookie_secure Off Off 
session.entropy_file no value no value 
session.entropy_length 0 0 
session.gc_divisor 1000 1000 
session.gc_maxlifetime 1440 1440 
session.gc_probability 1 1 
session.hash_bits_per_character 5 5 
session.hash_function 0 0 
session.name PHPSESSID PHPSESSID 
session.referer_check no value no value 
session.save_handler files files 
session.save_path c:\php\sessiondata c:\php\sessiondata 
session.serialize_handler php php 
session.use_cookies On On 
session.use_only_cookies Off Off 
session.use_trans_sid 0 0 


SimpleXML
Simplexml support enabled 
Revision  $Revision: 1.139.2.3 $  
Schema support  enabled  


SPL
SPL support enabled 
Interfaces  RecursiveIterator, SeekableIterator  
Classes  ArrayObject, ArrayIterator, CachingIterator,
CachingRecursiveIterator, DirectoryIterator, FilterIterator,
LimitIterator, ParentIterator, RecursiveDirectoryIterator,
RecursiveIteratorIterator, SimpleXMLIterator  


SQLite
SQLite support enabled 
PECL Module version  2.0-dev $Id: sqlite.c,v 1.146.2.2 2004/08/02
22:43:42 iliaa Exp $  
SQLite Library  2.8.14  
SQLite Encoding  iso8859  

Directive Local Value Master Value 
sqlite.assoc_case 0 0 


standard
Regex Library  Bundled library enabled  
Dynamic Library Support  enabled  
Internal Sendmail Support for Windows  enabled  

Directive Local Value Master Value 
assert.active 1 1 
assert.bail 0 0 
assert.callback no value no value 
assert.quiet_eval 0 0 
assert.warning 1 1 
auto_detect_line_endings 0 0 
date.default_latitude 31.7667 31.7667 
date.default_longitude 35.2333 35.2333 
date.sunrise_zenith 90.83 90.83 
date.sunset_zenith 90.83 90.83 
default_socket_timeout 60 60 
safe_mode_allowed_env_vars PHP_ PHP_ 
safe_mode_protected_env_vars LD_LIBRARY_PATH LD_LIBRARY_PATH 
url_rewriter.tags a=href,area=href,frame=src,input=src,form=fakeentry
a=href,area=href,frame=src,input=src,form=fakeentry 
user_agent no value no value 


tokenizer
Tokenizer Support  enabled  


wddx
WDDX Support enabled 
WDDX Session Serializer  enabled  


xml
XML Support  active  
XML Namespace Support  active  
libxml2 Version  2.6.11  


zlib
ZLib Support  enabled  
Compiled Version  1.1.4  
Linked Version  1.1.4  

Directive Local Value Master Value 
zlib.output_compression Off Off 
zlib.output_compression_level -1 -1 
zlib.output_handler no value no value 


Additional Modules
Module Name 


Environment
Variable Value 
ALLUSERSPROFILE  C:\Documents and Settings\All Users  
CLASSPATH  "C:\Program Files\Java\j2re1.4.2_03\lib\ext\QTJava.zip"  
CommonProgramFiles  C:\Program Files\Common Files  
COMPUTERNAME  IBM99L9V8F  
ComSpec  C:\WINDOWS\system32\cmd.exe  
FP_NO_HOST_CHECK  NO  
NUMBER_OF_PROCESSORS  1  
OS  Windows_NT  
Path 
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\PHP;"C:\Program
Files\Symantec\Norton Ghost 2003\"  
PATHEXT  .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH  
PROCESSOR_ARCHITECTURE  x86  
PROCESSOR_IDENTIFIER  x86 Family 6 Model 11 Stepping 1, GenuineIntel  
PROCESSOR_LEVEL  6  
PROCESSOR_REVISION  0b01  
ProgramFiles  C:\Program Files  
QTJAVA  "C:\Program Files\Java\j2re1.4.2_03\lib\ext\QTJava.zip"  
SystemDrive  C:  
SystemRoot  C:\WINDOWS  
TEMP  C:\WINDOWS\TEMP  
TMP  C:\WINDOWS\TEMP  
USERPROFILE  C:\Documents and Settings\LocalService  
windir  C:\WINDOWS  


PHP Variables
Variable Value 
_REQUEST["PHPSESSID"] s4pqtqvsrv49fv0ih7h8790g60 
_COOKIE["PHPSESSID"] s4pqtqvsrv49fv0ih7h8790g60 
_SERVER["ALL_HTTP"] HTTP_ACCEPT:image/gif, image/x-xbitmap, image/jpeg,
image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel,
application/vnd.ms-powerpoint, application/msword, */*
HTTP_ACCEPT_LANGUAGE:zh-tw,zh-hk;q=0.7,zh;q=0.3
HTTP_CONNECTION:Keep-Alive HTTP_HOST:localhost
HTTP_USER_AGENT:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;
(R1 1.5); .NET CLR 1.1.4322)
HTTP_COOKIE:PHPSESSID=s4pqtqvsrv49fv0ih7h8790g60
HTTP_ACCEPT_ENCODING:gzip, deflate  
_SERVER["HTTPS"] off 
_SERVER["SCRIPT_NAME"] /al/phpinfo4debug.php 
_SERVER["HTTP_COOKIE"] PHPSESSID=s4pqtqvsrv49fv0ih7h8790g60 
_SERVER["AUTH_PASSWORD"] no value 
_SERVER["AUTH_TYPE"] no value 
_SERVER["AUTH_USER"] no value 
_SERVER["CONTENT_LENGTH"] 0 
_SERVER["CONTENT_TYPE"] no value 
_SERVER["PATH_TRANSLATED"] c:\inetpub\wwwroot 
_SERVER["QUERY_STRING"] no value 
_SERVER["REMOTE_ADDR"] 127.0.0.1 
_SERVER["REMOTE_HOST"] 127.0.0.1 
_SERVER["REMOTE_USER"] no value 
_SERVER["REQUEST_METHOD"] GET 
_SERVER["SERVER_NAME"] localhost 
_SERVER["SERVER_PORT"] 80 
_SERVER["SERVER_PROTOCOL"] HTTP/1.1 
_SERVER["SERVER_SOFTWARE"] Microsoft-IIS/5.1 
_SERVER["APPL_MD_PATH"] /LM/W3SVC/1/ROOT 
_SERVER["APPL_PHYSICAL_PATH"] c:\inetpub\wwwroot\ 
_SERVER["INSTANCE_ID"] 1 
_SERVER["INSTANCE_META_PATH"] /LM/W3SVC/1 
_SERVER["LOGON_USER"] no value 
_SERVER["REQUEST_URI"] /al/phpinfo4debug.php 
_SERVER["URL"] /al/phpinfo4debug.php 
_SERVER["SCRIPT_FILENAME"] c:\inetpub\wwwroot\al\phpinfo4debug.php 
_SERVER["ORIG_PATH_INFO"] /al/phpinfo4debug.php 
_SERVER["PATH_INFO"] no value 
_SERVER["ORIG_PATH_TRANSLATED"] c:\inetpub\wwwroot\al\phpinfo4debug.php

_SERVER["DOCUMENT_ROOT"] c:\inetpub\wwwroot 
_SERVER["PHP_SELF"] /al/phpinfo4debug.php 
_SERVER["HTTP_ACCEPT"] image/gif, image/x-xbitmap, image/jpeg,
image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel,
application/vnd.ms-powerpoint, application/msword, */* 
_SERVER["HTTP_ACCEPT_LANGUAGE"] zh-tw,zh-hk;q=0.7,zh;q=0.3 
_SERVER["HTTP_CONNECTION"] Keep-Alive 
_SERVER["HTTP_HOST"] localhost 
_SERVER["HTTP_USER_AGENT"] Mozilla/4.0 (compatible; MSIE 6.0; Windows
NT 5.1; SV1; (R1 1.5); .NET CLR 1.1.4322) 
_SERVER["HTTP_ACCEPT_ENCODING"] gzip, deflate 
_ENV["ALLUSERSPROFILE"] C:\Documents and Settings\All Users 
_ENV["CLASSPATH"] "C:\Program
Files\Java\j2re1.4.2_03\lib\ext\QTJava.zip" 
_ENV["CommonProgramFiles"] C:\Program Files\Common Files 
_ENV["COMPUTERNAME"] IBM99L9V8F 
_ENV["ComSpec"] C:\WINDOWS\system32\cmd.exe 
_ENV["FP_NO_HOST_CHECK"] NO 
_ENV["NUMBER_OF_PROCESSORS"] 1 
_ENV["OS"] Windows_NT 
_ENV["Path"]
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\PHP;"C:\Program
Files\Symantec\Norton Ghost 2003\" 
_ENV["PATHEXT"] .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH 
_ENV["PROCESSOR_ARCHITECTURE"] x86 
_ENV["PROCESSOR_IDENTIFIER"] x86 Family 6 Model 11 Stepping 1,
GenuineIntel 
_ENV["PROCESSOR_LEVEL"] 6 
_ENV["PROCESSOR_REVISION"] 0b01 
_ENV["ProgramFiles"] C:\Program Files 
_ENV["QTJAVA"] "C:\Program Files\Java\j2re1.4.2_03\lib\ext\QTJava.zip"

_ENV["SystemDrive"] C: 
_ENV["SystemRoot"] C:\WINDOWS 
_ENV["TEMP"] C:\WINDOWS\TEMP 
_ENV["TMP"] C:\WINDOWS\TEMP 
_ENV["USERPROFILE"] C:\Documents and Settings\LocalService 
_ENV["windir"] C:\WINDOWS

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

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
    http://bugs.php.net/30195

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

Reply via email to