Кирилица записывается кракозябрами

zilon

Постоялец
Регистрация
30 Июл 2011
Сообщения
370
Реакции
146
Пытаюсь через форму отправить данные и записать их в файл. Всё нормально записывается но кириллица, записывается не в той кодировке. Я отправляю

HTML:
"5caa145a5e0b3393ae6e6667a0871376" => "Alchemist Project - Next Day 2011 (Клуб Рай Dj Frost).mp3",

а записывается

HTML:
"5caa145a5e0b3393ae6e6667a0871376" => "Alchemist Project - Next Day 2011 (Клуб Рай Dj Frost).mp3",

подскажите пжалуста как сделать, чтобы записалось в правильной кодировке? :thenks: Вот формочка

PHP:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<form method="post" action="http://***************/addtrack.php">
<textarea cols=100 rows=30 name=tracks>"5caa145a5e0b3393ae6e6667a0871376" => "Alchemist Project - Next Day 2011 (Клуб Рай Dj Frost).mp3",
</textarea>
<input type="hidden" value="rnb" name="categoriya">
<br><br><input type="submit" value="отправить">
</form>

а вот скрипт

PHP:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<?php set_time_limit (0); ini_set("memory_limit", "500M");
date_default_timezone_set('Europe/Berlin');

$tracks = $_POST['tracks'];
$_categoru = $_POST['categoriya'];
$put = dirname(__FILE__);
$put_download_get = $put . '/' . $_categoru . '/download_up_newmuzon.php';
$put_download_put = $put . '/' . $_categoru . '/download_up_newmuzon.php';
$tracks = str_replace ('\"', '"', $tracks);
$tracks = '$tracks = array (' . "$tracks";
//echo $tracks;
$tracks = iconv("windows-1251", "utf-8", $tracks);
$put_download_get = file_get_contents($put_download_get);
$put_download_get = str_replace('$tracks = array (', $tracks, $put_download_get);
if(file_put_contents($put_download_put, $put_download_get) == true)
{
    echo 'записалось';
}
else
{
    echo 'не записалось';
}

?>
 
если все приведенные файлы в utf-8
то в скрипте сохранения есть лишняя строчка
PHP:
$tracks = iconv("windows-1251", "utf-8", $tracks);
текст и так прилетает в utf-8 и эта конвертация ломает кодировку.
 
если все приведенные файлы в utf-8
то в скрипте сохранения есть лишняя строчка
PHP:
$tracks = iconv("windows-1251", "utf-8", $tracks);
текст и так прилетает в utf-8 и эта конвертация ломает кодировку.

спасибо заработало) оказалось что файл в который записывают был в cp1251

Но проблема начала выглядеть несколько иначе. Если файл в в который записывается строка

"5caa145a5e0b3393ae6e6667a0871376" => "Alchemist Project - Next Day 2011 (Клуб Рай Dj Frost).mp3",

сохранён в кодировке utf-8 то трек не скачивается, а если он сохранен в cp1251 то трек скачиваеться. Что можно сделать? все 3 файла пере конвертировать в cp1251 и будет работать?
 
Последнее редактирование:
"5caa145a5e0b3393ae6e6667a0871376" => "Alchemist Project - Next Day 2011 (Клуб Рай Dj Frost).mp3",

сохранён в кодировке utf-8 то трек не скачивается, а если он сохранен в cp1251 то трек скачиваеться. Что можно сделать? все 3 файла пере конвертировать в cp1251 и будет работать?
скорее всего так происходит из-за того, что имя mp3 файла в файловой системе в cp-1251
можно оставить файл "5caa145a5e0b3393ae6e6667a0871376" => "Alchemist Project - Next Day 2011 (Клуб Рай Dj Frost).mp3", в кодировке cp-1251, а прилетающие из формы данные кодировать в нее же:
Код:
$tracks = iconv("utf-8", "windows-1251", $tracks);
 
Назад
Сверху