[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с кодировкой текста
StAndrews
изучаю вывод списка файлов из каталога с помощью массива

есть index.php и рядом каталог "texts" в каталоге блокноты 1, 2, 3, 4, и в них тексты "Текст 1", "Текст 2", "Текст 3", "Текст 4" соответственно...

в index'е код :
<?php
$dirct="texts";
$hdl=opendir($dirct);
while($file = readdir($hdl))
{
if (($file!=".")&&($file!=".."))
{$a[]=$file;}

}
closedir($hdl);

foreach ($a as $value)
{
include ("$dirct/$value");
}
?>

если судить логически выводиться должны мои тексты. Они выводятся, код работает, но вывод таков "��������� ����".Подозревая что проблема в кодировке исправил текст первого блокнота на англ. Теперь выводит "Text1������".

charset=windows-1251">

Подскажите в чём проблема ?



Спустя 3 минуты, 25 секунд (16.05.2012 - 13:28) Invis1ble написал(а):

Спустя 15 минут, 1 секунда (16.05.2012 - 13:43) StAndrews написал(а):
Прочитал спасибо...

Правильно ли я понял ? если не работает мета тег нужно использовать

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

если да, то у меня всёравно не получается (может потому что я неправильно его использую (в голове страницы заключаю между php скобками))


Спустя 1 минута, 22 секунды (16.05.2012 - 13:44) Игорь_Vasinsky написал(а):
<?php
header("Content-Type: text/html; charset=cp1251");
?>

Спустя 1 минута, 16 секунд (16.05.2012 - 13:46) Invis1ble написал(а):
Кодировка текста и кодировка в заголовке (мета-тег, header() или AddDefaultCharset) должны совпадать

Спустя 6 минут, 37 секунд (16.05.2012 - 13:52) StAndrews написал(а):
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<?php
header("Content-Type: text/html; charset=cp1251");
?>

<title>Документ без названия</title>
</head>

выдает ошибку..

Спустя 1 минута, 19 секунд (16.05.2012 - 13:54) Игорь_Vasinsky написал(а):
а ты как хотел laugh.gif

<?php
header("Content-Type: text/html; charset=cp1251");
?>

остальной html после

Спустя 3 минуты, 24 секунды (16.05.2012 - 13:57) StAndrews написал(а):
остальной html после

всмысле ?

Спустя 1 минута, 47 секунд (16.05.2012 - 13:59) Игорь_Vasinsky написал(а):
....

заголовки в PHP посылаются до любого вывода

сначала шлёш заголовок, потом весь свой HTML.

Спустя 30 минут, 56 секунд (16.05.2012 - 14:30) StAndrews написал(а):
user posted image нипалучается, ребят...

PHP заголовок идет перед всем HTML , тоесть получается в самой первой строчке чтоли ???

<?php
header("Content-Type: text/html; charset=cp1251");
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Документ без названия</title>
</head>

я уже и так и сяк перепробовал а он мне одно:
Warning: Cannot modify header information

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


Спустя 17 минут, 39 секунд (16.05.2012 - 14:47) inpost написал(а):
Перед кодировкой НИЧЕГО не должно выводиться. Она должна стоять самой первой строчкой, ни единого пробела.

Спустя 4 минуты, 46 секунд (16.05.2012 - 14:52) StAndrews написал(а):
<?php
header("Content-Type: text/html; charset=cp1251");
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Документ без названия</title>
</head>

вывод: Warning: Cannot modify header information

кстати я забыл скзать (может это меняет дело...) этоя всё делаю не в фтп а в денверском апаче

Спустя 7 минут, 48 секунд (16.05.2012 - 15:00) inpost написал(а):
Видимо у файла выставлена кодировка UTF-8 with BOM. А надо win-1251, а если будешь работать с UTF - только WITHOUT BOM.

Или не показываешь часть кода...

Спустя 11 минут, 32 секунды (16.05.2012 - 15:12) StAndrews написал(а):
да нет, тут впринципе, когда я на первую строчку вставляю пхп заголовок, он выдает что не может модифицировать информацию заголовка, далее после warning идут мои иероглифы. если убрать этот заголовок - предупреждение исчезает.

попробовал на обоих поставить 1251, затем utf-8 - результат эквивалентный.

далее проверил, дописал в коде

echo('этот текст можно прочитать');

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

Спустя 16 минут, 1 секунда (16.05.2012 - 15:28) inpost написал(а):
сделай скрин-шот, как ты вставляешь на первую строчку! Я хочу видеть это... + это базовый скрипт, без инклюдов?

Спустя 18 минут, 58 секунд (16.05.2012 - 15:47) StAndrews написал(а):
убрал галочку с save with BOM, теперь инклудные тексты есть, а из index текст выводимый через echo закодирован ужасом.
кстати подскажите как сюда картинки заливать =)

вот весь код начинается с первой строчки будь я проклят

<?php
header("Content-Type: text/html; charset=cp1251");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Документ без названия</title>
</head>

<body>
<?php

$dirct="texts";
$hdl=opendir($dirct);
while($file = readdir($hdl))
{
if (($file!=".")&&($file!=".."))
{$a[]=$file;}

}
closedir($hdl);

foreach ($a as $value)
{
include ("$dirct/$value");
}

echo('этот текст можно прочитать');

?>
</body>
</html>

Спустя 6 минут, 27 секунд (16.05.2012 - 15:53) inpost написал(а):
"а из index текст выводимый через echo закодирован ужасом"
Переходи на UTF-8, и везде его используй. Проблем не будет.

Спустя 7 минут, 29 секунд (16.05.2012 - 16:00) StAndrews написал(а):
<?php
header("Content-Type: text/html; charset=UTF-8");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Документ без названия</title>
</head>

всё перевел на UTF-8, вернулось в обратное состояние с квадратами.
Полагаю BOM опять включился, хотя галку убрал, можно ли убрать его вручную? как ? И как на форум картинки заливать между делом ?

Спустя 3 минуты, 19 секунд (16.05.2012 - 16:04) inpost написал(а):
Перевёл - теперь сохрани. После текст заново перезапиши.

Спустя 53 минуты, 35 секунд (16.05.2012 - 16:57) StAndrews написал(а):
Без имени-1.jpg


вот скрин, извините, не знаю как на форум картинки заливать.

Помогите пожалуйста у каво еще терпение не лопнуло..

Спустя 5 часов, 21 минута, 36 секунд (16.05.2012 - 22:19) Invis1ble написал(а):

Спустя 13 часов, 56 минут, 51 секунда (17.05.2012 - 12:16) StAndrews написал(а):
Ребят спасибо всем что откликнулись.
Решил проблему следующим кодом.

<?php
header("Content-Type: text/html; charset=Windows-1251");
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title> </title>

</head>

Спустя 4 минуты, 45 секунд (17.05.2012 - 12:21) bodja написал(а):
StAndrews
решил проблему костылем,
сказа ли же ,переведи все в одну кодировку и header не потребуется.

Спустя 23 часа, 15 минут, 30 секунд (18.05.2012 - 11:36) StAndrews написал(а):
Цитата
сказа ли же ,переведи все в одну кодировку и header не потребуется.



да что значит "всё" если без хэдера то остается только мета тег, а он в любой кодировке мне выдает китайскую грамоту.

работаю на phpdesigner7 может настройки какие поменять нужно ?

Спустя 17 минут, 56 секунд (18.05.2012 - 11:54) ZSH написал(а):
файлы которые инклютятся тоже в UTF8

Спустя 4 минуты, 37 секунд (18.05.2012 - 11:59) StAndrews написал(а):
файлы которые инклутятся это обычные txt в которых кроме контента ничего не должно быть...

Спустя 20 минут, 23 секунды (18.05.2012 - 12:19) ZSH написал(а):
Цитата
файлы которые инклутятся это обычные txt в которых кроме контента ничего не должно быть...

они должны быть в той кодировке которая указана в header и meta.
все должно быть в одной кодировке php-файлы, txt-файлы и указать эту кодировку в header, meta с указанием кодировки вообще не нужно.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.