Форумы портала PHP.SU » PHP » Программирование на PHP » Как поменять кодировку?

Страниц (2): [1] 2 »
 

1. roma - 14 Октября, 2008 - 16:50:12 - перейти к сообщению
Я новичок в PHP, поэтому может слишком простой вопрос.
пишу простую програмку в одну стоку.



Браузер выводит - Hello

Но если написать
CODE (text):
скопировать код в буфер обмена
  1. echo("<p>Привет</p>")
то браузер выводит

Привет

Как заставить работать с русской кодировкой, уже PHPEdit поставил, не помогло Огорчение в нем то же самое.
2. Viper - 14 Октября, 2008 - 17:48:14 - перейти к сообщению
для начала сохранить файл в кодировке cp1251(от же Cyrillic он же windows-1251)
3. roma - 14 Октября, 2008 - 17:55:01 - перейти к сообщению
Выставил: file Encoding - windows-1251(Default Encoding), не помогло Огорчение
(Добавление)
теперь выводит

РџСЂРёРІРµС
4. valenok - 14 Октября, 2008 - 18:20:59 - перейти к сообщению
не слушайте его.
Сохраните файл с кодировкой utf-8
А в начале скрипта впишите

PHP:
скопировать код в буфер обмена
  1. <?PHP header("Content-Type: text/html; charset=utf-8");?>
  2. <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  3. <?PHP echo 'юяёэъ'; ?>
5. roma - 14 Октября, 2008 - 21:22:55 - перейти к сообщению
Большое спасибо! Получилось!!!!!!!! Радость
Проблема была еще в том что делал страницу index.php и строку
CODE (text):
скопировать код в буфер обмена
  1. <?PHP  header("Content-Type: text/html; charset=utf-8");?>

ставил после
CODE (text):
скопировать код в буфер обмена
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

а не в начале страницы

Ну и намучался я с этой кодировкой, все по английскому писать приходилось.
6. valenok - 14 Октября, 2008 - 22:58:17 - перейти к сообщению
на будущее http://phpfaq[dot]ru/headers
7. rpeka - 16 Октября, 2008 - 19:47:35 - перейти к сообщению
roma пишет:
Большое спасибо! Получилось!!!!!!!!
Проблема была еще в том что делал страницу index.php и строку

(Добавление)


Блин я олень). Поставил форум phpBB-3.0.2. Как сделать чтобы по умолчанию index.php грузился в кодировке юникод UTF-8. Помогите пожалуйста...
8. Yuriy - 16 Октября, 2008 - 22:38:42 - перейти к сообщению
valenok пишет:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP  header("Content-Type: text/html; charset=utf-8");?>
  3. <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  4. <?PHP  echo 'юяёэъ'; ?>


Интересный момент... У меня сейчас на хостинге был такой прикол. Купил хостинг, а там кодировка криво отображается, хоть и прописал

CODE (text):
скопировать код в буфер обмена
  1. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />


А когда выше передал заголовок

PHP:
скопировать код в буфер обмена
  1. header("Content-Type: text/html; charset=windows-1251");


Всё стало на свои места. А почему так?

И ещё. valenok, почему в твоём коде используется именно UTF-8?
9. rpeka - 16 Октября, 2008 - 23:39:07 - перейти к сообщению
Интересный момент... У меня сейчас на хостинге был такой прикол. Купил хостинг, а там кодировка криво отображается, хоть и прописал

CODE (text):
скопировать код в буфер обмена
  1. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />


А когда выше передал заголовок

PHP:
скопировать код в буфер обмена
  1. header("Content-Type: text/html; charset=windows-1251");


Всё стало на свои места. А почему так?

Где ты переделал? По подробнее плиз))
10. valenok - 17 Октября, 2008 - 00:38:15 - перейти к сообщению
Yuriy
Я использую юникод потому что он более универсален и позволяет создавать многоязычные приложения. Преимуществ у utf-8 больше. Погуглите на эту тему.
11. Yuriy - 17 Октября, 2008 - 02:35:15 - перейти к сообщению
valenok пишет:
Yuriy
Я использую юникод потому что он более универсален и позволяет создавать многоязычные приложения. Преимуществ у utf-8 больше. Погуглите на эту тему.


Почитал, согласен.

Тем не менее, я не пойму, что творится у меня на хостинге... Отдал заголовок в header, в meta также прописал utf-8. В браузере - фигня вместо моих символов... Выбирал в них кодировку utf-8 - тоже всё как и было. Когда выберешь windows-1251 - тогда текст нормально отображается. Вопрос: я указал в документе кодировку utf-8 и даже в браузере её выбрал - почему текст нормально не отобразился?

Не врубаюсь в особенности работы с этой кодировкой...

rpeka пишет:
Где ты переделал? По подробнее плиз))


Я не употреблял в сообщении слово "переделал"... Ничего я не перделывал Улыбка Поэтому вопрос не понят. Может быть, "передал" (заголовок)?
12. valenok - 17 Октября, 2008 - 02:58:23 - перейти к сообщению
Нужно сделать три вещи
1. Сохранить файл в кодировке utf-8
2. Отправить заголовок с кодировкой utf-8
3. Вывести мета тег с кодировкой utf-8

в фаерфоксе правой кнопочкой - информация о странице и смотри что он говорит
про кодировку и про мета теги.
13. Yuriy - 17 Октября, 2008 - 03:16:45 - перейти к сообщению
valenok, спасибо! Дело было в том, что забыл кодировку документа поменять! Теперь при выборе в браузере UTF-8 всё как положено Улыбка Но... У меня также всё отлично работает без пунктов 2 и 3. Я их убрал из документа. Значит, у сервера по-умолчанию стоит UTF-8 и не стоит беспокоиться на счёт этих двух пунктов - я правильно понял?

Второй вопрос. Если выставить в браузере windows-1251 - опять фигня вместо символов. Оно и понятно, в общем-то - ведь в Юникоде работаю. Это нормальное явление и обращать на него внимание не нужно?

Третий вопрос. У меня сайт только на русском языке - нафига использовать Юникод? Улыбка Что меня должно всё равно заставить его использовать в данном случае?
14. valenok - 17 Октября, 2008 - 11:31:58 - перейти к сообщению
Насчёт мета тегов это обязательно для любой кодировки которую вы используете,
а касаемо заголовка - если апач настроен отсылать его за вас - это хорошо, а если вы завтра переедете, продадите или сис.админ хостинг провайдера уволится, то вы мягко говоря, окажетесь в пролете. Я всегда принудительно отсылаю заголовки через php или указываю их добавление в .htaccess

А юникод поддерживается во всех браузерах, будь то китайский француз который забредет на ваш сайт и увидит то что он должен увидеть или какой нибудь вася будет смотреть ваш сайт через гугл кэш (кнопочка сохранённая копия при поиске), то отображаться он будет корректно. Благо в случае с гуглом, они сами постараются сделать всё за вас, но и у них это получается только на 95%
15. Yuriy - 17 Октября, 2008 - 18:09:53 - перейти к сообщению
valenok, отличный и убедительный ответ! Спасибо!

 

Powered by ExBB FM 1.0 RC1