Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2009, 18:54   #1
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию Проблема с кодировкой

PHP файл состоит из вызова функций и в некоторых местах прописанного текста. То, что в функциях, отображается нормальными буквами, и в браузере показывает, что кодировка UTF-8. Некоторые символы, которые прописаны текстом в файле, отображаются в виде вопросов в ромбиках. Если изм. кодировку на win-1251, эти символы будут нормальные, русские. Остальное же - неправильно. В чем дело? Файл сначала был нормальным. Если же его исправить, а потом опять вернуть, то вопросы не исчезают.
Все это делается через прогу WinSCP.
motorway вне форума Ответить с цитированием
Старый 02.10.2009, 20:21   #2
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

перекодируйте (не просто поменяйте кодировку, а именно перекодируйте) файл в нужную кодировку с помощью любого текстового редактора поддерживающего эту функцию

либо применяйте функции изменения кодировки к нужным строкам, например mb_convert_encoding();
свободен...
wall66 вне форума Ответить с цитированием
Старый 02.10.2009, 20:24   #3
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Последнее не помогло. Помогает iconv, но вставлять в сотне мест это - ужасно. А в WinSCP, по-моему, не получается выбирать кодировку. И что Вы имеете в виду под перекодированием?
motorway вне форума Ответить с цитированием
Старый 02.10.2009, 20:29   #4
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

хороший повод сменить текстовый редактор / перенести строки в базу данных / перейти на шаблонное построение сайтов (для этого посоветую smarty)

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

Цитата:
Вы имеете в виду под перекодированием?
это то же самое что и iconv, только для файла
свободен...
wall66 вне форума Ответить с цитированием
Старый 02.10.2009, 20:31   #5
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Мне желательно все заменить одной командой. Сайт не мой, там был движок WordPress.
В общем, у меня есть код на php+вставки на русском, как если бы это все писалось в блокноте без сохранения. Что с этим сделать, чтобы стало нормально?

Последний раз редактировалось motorway; 02.10.2009 в 20:34.
motorway вне форума Ответить с цитированием
Старый 02.10.2009, 20:33   #6
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

ну к примеру для текстового редактора notepad2:

File -> Encoding -> Recode... -> выбираете нужную кодировку -> жмете Ok -> сохраняете файл -> радуетесь
свободен...
wall66 вне форума Ответить с цитированием
Старый 02.10.2009, 20:43   #7
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Дело в том, что в этой проге WinSCP не получается закачивать файлы просто с компа. Если же скопировать код из блокнота2, появляются вопросы вместо русских букв
motorway вне форума Ответить с цитированием
Старый 02.10.2009, 20:47   #8
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

либо смените WinSCP на что-нибудь более человеческое, либо перекодируйте в другую кодировку, которая не превратится в знаки опроса при вставке
свободен...
wall66 вне форума Ответить с цитированием
Старый 02.10.2009, 20:56   #9
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Может, можно как-то поместить весь вывод в буфер, а потом перекодировать с помощью iconv за один раз? Некоторые теги там просто пишутся, они не в php.
motorway вне форума Ответить с цитированием
Старый 02.10.2009, 21:00   #10
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

ну тогда поместите в начало файла
PHP код:
ob_start(); 
, а в конец
PHP код:
$output=ob_get_contents();
ob_end_clean(); 
а уж с переменной $output делайте что хотите
свободен...
wall66 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с кодировкой из MySQL D-Snaker PHP 2 28.08.2009 10:30
Проблема с кодировкой motorway Microsoft Office Excel 3 03.07.2009 22:27
Проблема с кодировкой GaJIbI4 Помощь студентам 7 05.03.2009 15:42
Проблема с кодировкой... SynonymMixer Общие вопросы Delphi 6 28.01.2009 15:40
Проблема с кодировкой feniks65 Паскаль, Turbo Pascal, PascalABC.NET 13 06.01.2009 11:00