Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с кодировкой при использовании str_replac 
V
    Опции темы
ZTI831
Дата 31.7.2009, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 10.6.2009

Репутация: нет
Всего: нет



Здравствуйте!
При замене строки {auther} на руские символы выходит Александр (utf-8). Я знаю что PHP работает только с ISO-8859-*, EUC-JP, UTF-8 кодировками, однако мне требуется вывести строку в кодировке windows-1251. Как это можно сделать?
Код

$auther = "Александр";
$fr = fopen ("index.php", "r");
$fr = fread ($fr, 6656);
$fr = stripslashes ($fr);
$fr = str_replace ("{auther}", $auther, $fr);
echo $fr;

В index.php
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
{auther}

PM   Вверх
Ипатьев
Дата 31.7.2009, 20:52 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Очень забавно smile
На самом деле, все наоборот. 
PHP прекрасно работает с любыми однобайтными кодировками, поскольку никак их не различает. В том числе и с 1251.
А вот с UTF-8 начнет работать только начиная с 6 версии, которой пока нету.

А в utf-8 строка выводится, разумеется, не из-за  str_replace, а из-за того, что она изначально была в utf-8, а совсем не в 1251. И это очень просто было проверить самостоятельно, выведя строку до любых преобразований.
PM MAIL   Вверх
Avrely
Дата 31.7.2009, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 239
Регистрация: 15.3.2007

Репутация: нет
Всего: 2



Код

header('Content-Type: text/html; charset=windows-1251');

$auther = "Александр";
$fr = fopen ("index.php", "r");
$fr = fread ($fr, 6656);
$fr = stripslashes ($fr);
$fr = str_replace ("{auther}", $auther, $fr);

echo iconv("UTF-8","windows-1251",$fr);




Может так ? 
PM MAIL ICQ MSN   Вверх
Kallisto
Дата 31.7.2009, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 163
Регистрация: 20.4.2007

Репутация: -3
Всего: -1



Скорее всего у вас скрипт в кодировке УТФ-8.
По-этому на вывод идет строка в УТФ.

Есть 2 пути решения:
 1) Пересохранить скрипт в кодировке cp1251
 2) Убрать в документе мета-кодировку, и заменить на утф
PM MAIL   Вверх
ZTI831
Дата 1.8.2009, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 10.6.2009

Репутация: нет
Всего: нет



Ах да! Скрипт был в кодировке utf-8. Спасибо!
(После установки win7 забыл DW настроить)
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0783 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.