JavaScript — PHP: как записать файл на диск с символами Юникода

Мне нужно записать файл на диск со специальными символами ISO-8859-15. Для собственных целей тестирования я использовал:

— © ® ± àáâãäåæÒÓÔÕÖ¼½¾§μçðþú-.jpg

…но дроби em-dash, en-dash, а также дроби 1/2, 1/4 и 3/4 были заменены на «мусор», когда файл записывался на диск с этим именем, тогда как другие символы в имени файла были записаны правильно. Почему одни, а не другие ???

Вот очень простой PHP-скрипт для записи файла с только символами авторского права и тире в его имени. Когда я запускаю его, строка записывается в файл правильно, но тире имени файла заменяются мусором:

<?php
// First, create a text file with the em-dash and the copyright symbol, then put the file prefix into the file:
$filename1 = "000—©—©.txt";
$content1 = "000—©—©";
file_put_contents($filename1, $content1);
?>

Какой самый эффективный и элегантный способ сделать это с помощью PHP (или Javascript)? Я нацеливаюсь ТОЛЬКО на набор символов ISO-8859-15.

Большое спасибо!
Том

0

Решение

Я нашел свой ответ. Для начала мне нужна кодировка WINDOWS-1252. Во-вторых, все, что мне нужно сделать, это использовать inconv (), конвертируя из ‘UTF-8’ в ‘WINDOWS-1252’, вот так:

<?php
// First, create a text file with the em-dash and the copyright symbol, then put the file prefix into the file:
$filename1 = "000—©—©.txt";
$content1 = "000—©—©";

// Judicious use of iconv() does the trick:
$filename1 = iconv('UTF-8', 'WINDOWS-1252', $filename1);
file_put_contents($filename1, $content1);
?>

Мой единственный вопрос, при условии, что я проверяю это на XAMPP на моем локальном компьютере с Windows, заключается в том, будет ли кодировка WINDOWS-1252 работать на реальных серверах в основных службах хостинга (GoDaddy и т. Д.). Если нет, есть ли другая кодировка? который поддерживает все, что включено в WINDOWS-1252, но лучше подходит для локальных серверов, отличных от XAMPP?

Там есть полный список кодировок, поддерживаемых iconv Вот. Некоторые из них находятся на одной линии с WINDOWS-1252; это означает, что они взаимозаменяемы?

Большое спасибо,
Том

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]