Tôi có một folder.ini chứa:
[Nhãn]
;
tên=testverzeichnis
;
description=verzeichnis zu testen von daten
[Nội dung]
[Nhà xuất bản]
nhà xuất bản=e-Giải pháp
bản quyền=André Reinhardt
khi tôi sử dụng phân tích cú pháp_ini_file()
Khi phân tích nó tôi nhận được �
thay vì é
. Mã của tôi:
$ini_array = parse_ini_file("buồn - Kopie (6)/folder.ini", TRUE);
print_r($ini_array);
Tôi đã cố gắng đặt é
Thay thế bằng é
Nhưng chuỗi của tôi là 0
.
Thêm vào:Mã cho nội dung xem nàyÁp dụng cho,é
Vàé
:
echo file_get_contents($directories[$i]."/folder.ini")
Làm thế nào tôi có thể tránh được điều này?
Sau đây là giả định vì câu hỏi của bạn cho đến nay không ghi lại nguyên nhân thực sự về mặt kỹ thuật.
Nhưng giả sử bạn gặp vấn đề liên quan đến mã hóa ký tự ở đây.
Lưu tệp INI của bạn bằng mã hóa UTF-8,nênCó thể làm việc. Tôi giả định rằng tập lệnh PHP của bạn xuất ra UTF-8 cho trình duyệt và các giá trị trong tệp INI không được mã hóa UTF-8. Nếu bạn lưu tệp INI bằng mã hóa UTF-8, điều nàynênSau đó làm việc.
Điểm mấu chốt ở đây không phải là quá nhiều "UTF-8" mà là bạn lưu tệp INI với mã hóa ký tự chính xác mà ứng dụng của bạn mong đợi. Ví dụ: nếu ứng dụng của bạn sử dụng ISO-8859-1, hãy lưu tệp INI bằng mã hóa ISO-8859-1.
Cả tệp INI và tập lệnh PHP đều cần sử dụng cùng một "ngôn ngữ".
Bạn có thể thêm một "trình dịch" giúp bạn kết hợp hai "ngôn ngữ" khác nhau lại với nhau. Một dịch giả như vậy (hay chính xác hơn làbộ mã hóa lại)Đúngbiểu tượngv
:
$ini_iso88591 = file_get_contents("buồn - Kopie (6)/folder.ini");
$ini_utf8 = iconv("ISO-8859-1", "UTF-8", $ini_iso88591);
$ini_array = parse_ini_string($ini_utf8, TRUE);
Tôi là một lập trình viên xuất sắc, rất giỏi!