Khi có một tập tin lưu trong tiêu chuẩn ISO-8859-1 và sử dụng lệnhnào charset xem xét các chức năng thay đổi từ PHP5.2 để PHP5.4
echo "test: ".htmlspecialchars("äöü");
Sự trở lại sẽ chỉ "thử nghiệm:".
Điều này là do bộ ký tự chuẩn cho htmlspecialchars được đổi thành UTF-8 trong PHP5.4. Bạn cần đặt rõ ràng bộ ký tự:
echo "test: ".htmlspecialchars("äöü", ENT_COMPAT | ENT_HTML401, 'ISO-8859-1');
Có bất kỳ chức năng nào khác trong PHP5.4, sẽ không hoạt động bình thường nữa, nếu bạn không đặt bộ ký tự?
Tôi muốn thêm một cái gì đó: PHP 5.4 được cho là "PHP 6.0" được giả định là đầy đủ UTF- 8, vì vậy trong một tương lai gần, tất cả các chức năng sẽ được thiết lập mặc định là UTF-8. –
@David Bélanger: Điều này rất không chính xác. Chưa bao giờ có PHP 6.0 và PHP 5.4 không bao giờ được coi là PHP 6.0. Ngoài ra PHP 6.0 - nếu bao giờ - được supposted là UTF-16, không phải UTF-8. – hakre
@hakre False. Xem http://smartwebdeveloper.com/php/php-6-features-release-date-hosting-download –