Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/74: Рейтинг темы: голосов - 74, средняя оценка - 4.78
289 / 34 / 6
Регистрация: 20.09.2011
Сообщений: 464
1

Создание файла в определенной кодировке

30.10.2011, 13:46. Показов 13559. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здраствуйте.
Такой вопрос: как при создании и записи в файл указать его кодировку?

Например, вот есть часть кода:
PHP
1
2
3
$file=fopen('text.php',"w+");
fwrite($file,'текст');
fclose($file);
Как сделать так, чтобы файл text.php был в кодировке windos-1521?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.10.2011, 13:46
Ответы с готовыми решениями:

Создание файла в UTF-8 кодировке
Здравствуйте! Как сделать что бы в данной ситуации файл создавался в utf-8 DWORD tmp0; ...

Создание текстового файла в DOS кодировке
Плиз хелп. Возникла проблемка при создании текстового файла. На выходе он должен быть в Dos...

Вывод текста в кодировке Win-1251 из bat-файла, текст которого в кодировке OEM-866
примем за аксиому утверждение: "bat-скрипт следует создавать в кодировке DOS (OEM-866)" ...пусть...

Создание dbf-файла dBASE III с использованием JetOleDB4: на одном из ПК файл создается в кодировке ANSI
Здравствуйте. Возникла у меня интересная проблема: Программно создаю dbf файл dBASE III...

9
97 / 72 / 28
Регистрация: 08.10.2011
Сообщений: 130
30.10.2011, 13:55 2
Цитата Сообщение от galaid Посмотреть сообщение
как при создании и записи в файл указать его кодировку?
При создании файла не знаю, но если файл существует, то можно его сохранить с определенной кодировкой. Например, если text.php уже существует, то нужно его кодировку поменять на windows-1521, а потом сохранить. Тогда php сценарий запишет данные в файл, а кодировка файла не изменится.
0
289 / 34 / 6
Регистрация: 20.09.2011
Сообщений: 464
30.10.2011, 14:36  [ТС] 3
Цитата Сообщение от programmer_11 Посмотреть сообщение
При создании файла не знаю, но если файл существует, то можно его сохранить с определенной кодировкой. Например, если text.php уже существует, то нужно его кодировку поменять на windows-1521, а потом сохранить. Тогда php сценарий запишет данные в файл, а кодировка файла не изменится.
Это не то.
0
13208 / 6597 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
30.10.2011, 15:12 4
Цитата Сообщение от galaid Посмотреть сообщение
как при создании и записи в файл указать его кодировку?
А файла нет кодировки. Кодировка есть у текста (в данном случае). В какой кодировке текст туда засунете, в такой и сохранится.
0
289 / 34 / 6
Регистрация: 20.09.2011
Сообщений: 464
30.10.2011, 15:16  [ТС] 5
Цитата Сообщение от Vovan-VE Посмотреть сообщение
А файла нет кодировки. Кодировка есть у текста (в данном случае). В какой кодировке текст туда засунете, в такой и сохранится.
Извиняюсь, что не так задал вопрос.

Но на всякий случай уточню: если у меня есть страница сайта create.php в кодировке windows-1251 и при помощи этой страницы создается файл с текстовой информацией, то текст будет тоже в windows-1251?
0
13208 / 6597 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
30.10.2011, 15:17 6
galaid, Да, должна быть cp1251.
0
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
17.06.2016, 17:17 7
Цитата Сообщение от Vovan-VE Посмотреть сообщение
должна быть cp1251
а если нет?
Уже мозг сломал себе.

лежит .htaccess со строкой AddDefaultCharset windows-1251
сам файл index.php в кодировке windows-1251
а вот этим index-ом создается в utf-8 - хоть плачь

Добавлено через 4 часа 11 минут
Короче помог комплекс мер. А именно (может кому поможет):
1) .htaccess со строкой AddDefaultCharset windows-1251
2) файл скрипта сохранить в кодировке windows-1251
3) iconv("utf-8", "windows-1251", $data);
2
12 / 7 / 7
Регистрация: 02.04.2014
Сообщений: 342
12.02.2019, 06:26 8
У меня та же беда. Пишу в sublime text 2 пхп файл. setlocale (LC_ALL, "ru") вставлял.
header('Content-Type: text/html; charset=windows-1251') и header('Content-Type: text/html; charset=utf-8') тоже. Еще в httpd.conf вставил AddDefaultCharset utf-8. Сохранял в ANSI и обычном виде. Ниче не помогает.База данных на русском, нужно будет сравнивать данные из .txt с данными в базе, а там черти всякие образуются=(
0
562 / 339 / 87
Регистрация: 15.05.2013
Сообщений: 812
Записей в блоге: 1
12.02.2019, 09:41 9
sunjan, по порядку...
setLocale никак не влияет на кодировку
AdddefaultCharset можно убрать из httpd.conf

header('Content-Type: text/html; charset=utf-8')

Файлы сохраняйте в UTF-8.

Если после этого все-равно неправильно отображаются данные - значить в базе другая кодировка.
Во время коннекта к базе CHARSET можно указать.
0
12 / 7 / 7
Регистрация: 02.04.2014
Сообщений: 342
12.02.2019, 15:13 10
Я к базе запрос еще не делал. Это пхп из файла .txt неправильно отображает русский в браузере.

Добавлено через 48 секунд
В смысле-считываю данные из блокнота что-то с ними делаю и вывожу в браузере. С английским всё норм.
0
12.02.2019, 15:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2019, 15:13
Помогаю со студенческими работами здесь

Создание файла в определенной папке
Написать скрипт Создания файла в определенной папке

Создание текстового файла в определённой директории
Добрый день! Расскажите, как можно создать простой текстовый файл с некоторым текстом в...

Qt определение вывода ошибок в определенной кодировке (для русского текста)
Здравствуйте. Имеются исходники в формате utf-8 QAxObject * ax = new...

Создание файла со списком имён всех папок в определенной директории, включая вложенные
Добрый день. Решил создать список, взяв все имена всех папок в определенной директории (включая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru