Tôi muốn truy cập tệp PHP có tên có ký tự UTF-8 trong đó.Tên tệp PHP (hoặc thư mục trong đường dẫn đầy đủ của nó) có các ký tự UTF-8 không?
Tệp không có BOM trong đó. Nó chỉ chứa một câu lệnh echo hiển thị một vài ký tự unicode.
Truy cập vào trang PHP từ trình duyệt (FireFox 3.0.8, IE7) kết quả trong lỗi HTTP 500.
Có hai mục trong nhật ký Apache (file là/க php;. Thư க là một tổng hợp một và tương ứng với các ký tự \ xe0 \ xae \ x95 trong nhật ký bên dưới):
[Sat Apr 04 09:30:25 2009] [error] [client 127.0.0.1] PHP Cảnh báo: Không xác định: không thành công luồng mở: Không có tệp hoặc thư mục nào trong Không xác định trên dòng 0
[Sat Apr 04 09:30:25 2009] [error] [client 127.0.0.1] PHP Lỗi nghiêm trọng: Không xác định: Không mở được yêu cầu 'D:/va/ROOT/\ xe 0 \ xae \ x95.php '(include_path =' .; C: \ php5 \ pear ') trong Không xác định trên dòng 0
Cùng một trang hoạt động khi tên tệp và dir bằng tiếng Anh. Trong cùng một thiết lập, không có vấn đề gì khi sử dụng SSI cho các trang này.
EDIT
thông tin Removed trên url viết lại vì nó dường như không phải là một yếu tố.
Khi mod_rewrite bị xóa, tệp PHP vẫn không hoạt động. Hoạt động nếu tệp được đổi tên thành tên không phải UTF. Tuy nhiên, shtml hoạt động ngay cả với các ký tự UTF trong tệp và/hoặc tên đường dẫn.
bạn có thể nhận php để mở các tập tin bằng cách quét các thư mục và sử dụng tên mà nó tìm thấy ngay cả khi nó đang ở trong một mã hóa khác nhau. –
toàn diện, cảm ơn! – Znarkus
http://stackoverflow.com/questions/1525830/how-do-i-use-filesystem-functions-in-php-using-utf-8-strings -> Tôi sẽ kiểm tra tại đây – Revenant