Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > txt в utf8


Автор: LEX555 12.5.2010, 12:07
Привет всем, вопросик следующего содержания: как текстовый файл сохранить в кодировке utf-8? 
Заранее спасибо!!!

Добавлено через 2 минуты и 36 секунд
Естественно с помощью скрипта а не в ручную)

Автор: NewDima 12.5.2010, 12:14
Самый простой способ - http://ru2.php.net/manual/en/function.iconv.php

Автор: LEX555 12.5.2010, 12:31
NewDima,  вы говорите мне о конвертации строк! А я прошу сказать как сохранить именно текстовый файл( не конвертировать его,а просто сохранить) в utf.

Автор: smartov 12.5.2010, 12:37
Цитата(LEX555 @  12.5.2010,  12:31 Найти цитируемый пост)
не конвертировать его,а просто сохранить) в utf

Вы себе неправильно представляете механизм.
Кодировка - это не какой-то там байтик, вроде прав доступа. Смена кодировки означает переписывание всего файла.
Ответ про iconv является верным.

Добавлено через 30 секунд
То есть надо прочитать весь файл в старой кодировке, перевести текст в utf8 и сохранить полученный текст назад в файл

Автор: LEX555 12.5.2010, 12:44
smartov, нет это вы меня не понимаете!!!  Я не прошу рассказать мне о перекодировках- поверьте намучился с этим как надо. У меня вопрос конкретный -есть ли возможность сохранить файл текстовый в utf c помощью скрипта???

Автор: NewDima 12.5.2010, 12:55
file_put_contents

Автор: LEX555 12.5.2010, 13:11
NewDima, если не сложно как этой функцией воспользоваться???

Автор: NLspieler 12.5.2010, 13:29
Цитата(LEX555 @  12.5.2010,  13:11 Найти цитируемый пост)
NewDima, если не сложно как этой функцией воспользоваться??? 

Код

file_put_contents  ( $filename  ,  $data ) ;

http://php.net/manual/de/function.file-put-contents.php

Автор: LEX555 12.5.2010, 13:49
Я про функцию почитал! Как ее с кодировкой связать?

Автор: bars80080 12.5.2010, 14:14
LEX555, 

без разницы какая кодировка, механизм записи не изменится. соответственно никаких регуляторов в этой функции связанных с кодировкой нет, потому что ей похеру какие данные находят в записываемых строках. она их тупо записывает.
ты не поверишь, она даже не делает разницы между буквами и числами. для неё это всё одно - набор байтов.
чтобы текст в записанном файле был в кодировке ютф, надо всего лишь сконвертировать этот текст в кодировку ютф, чем и занимается функция iconv.
а потом уже записать

Автор: LEX555 12.5.2010, 14:38
Ясно,странно только что никто не видит вопроса! Вопрос не состоит в конвертации текста! Мне не надо конвертировать текст! Мне надо сохранить текстовый файл в кодировке txt без всяких коментариев на подобе-"это ни к чему не приведет... " раз я спрашиваю значит знаю чего хочу! Как это сделать кто-нибудь знает???

Автор: smartov 12.5.2010, 14:48
LEX555, 
Тебе уже объяснили как работает функция сохранения. Она ничего не знает о кодировках, потому что сохраняет бинарную информацию. 
Что дашь - то и сохранит. 

Дай ей текст в кодировке utf8 - получишь файл в кодировке utf8. Что еще не ясно?

Добавлено через 50 секунд

 ! 
smartov
Если еще раз повторишь изначальный вопрос "сохранить текстовый файл в кодировке txt" я буду расценивать это как флуд.

Автор: LEX555 12.5.2010, 15:07
smartov, ты можешь расчитывать это как хочешь!!! если я задаю вопрос я хочу получить ответ верно?? У меня есть файл!!! он txt и строки в нем в кодировке я думаю ANSI. Мне не надо строки переводить в utf получится каказябра! Но мне надо файл- > сохранить как и выбрать кодировку utf!!! Как это сделать скриптом! Это все что мне нужно! 

Автор: s0lman 12.5.2010, 15:26
Отдайте эту тему в песочницу  smile 

Автор: smartov 12.5.2010, 15:27
LEX555, 
Цитата(LEX555 @  12.5.2010,  15:07 Найти цитируемый пост)
мне надо файл- > сохранить как и выбрать кодировку utf!

Форум посвященный программе notepad тут отсутствует. 
Превращение файла из ANSI в UTF8 выглядит на PHP примерно вот так:

Код

//читаем содержимое исходного файла
$contents = file_get_contents('File_in_ANSI_encoding.txt');
//определяем кодировку
$encoding = iconv_get_encoding($contents);

//выходим, если не смогли определить
if ($encoding === false) {
    echo 'Could not define encoding.';
    exit;
}

//превращаем в нужную кодировку
$contents = iconv($encoding, 'UTF-8', $contents);

//выходим, если не смогли
if ($contents === false) {
    echo 'Could not convert.';
    exit;
}

//Записываем в новый или тот же файл
file_put_contents('File_in_UTF8_encoding.txt', $contents);


Автор: WebAngel 12.5.2010, 15:28
LEX555, 
ты скорее всего не поверишь и будешь в неистовом шоке, но это тоже самое, что конвертирование с помощью iconv и сохранение через   file_put_contents.

А те непонятные обычному человеку крякозябры и есть утф8. Чтобы их смысл приоткрылся необходимо при просмотре выбрать правильную кодировку, которой является утф-8.


P.S. от трэда чуть не умер smile

Автор: нуп 12.5.2010, 15:30
Жестко  smile 

Автор: LEX555 12.5.2010, 15:59
Ладно, спасибо ребят и за чувство юмора тоже)) Я понял, ну бывает что поделаешь)) Спасибо отдельное огромное модератору!!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)