|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.07.2009, 14:44 | #1 |
Форумчанин
Регистрация: 26.10.2007
Сообщений: 124
|
Некорректо отображается кирилица и перенос строки (\n)
Здраствуйте !
Я обучаюсь PHP, столкнулся с проблемой. У меня почему-то например при использовании функции strlen (кол-во символов в строке), символ кирилицей считается за 2 символа. А также, когда использую перенос строки "\n" при записи в файл, он не работает, а отображается как квадратик на месте где должен был быть перенос. Также при использовании некоторых функций , кирилица вообще отображается иероглифами. вот например код: Код:
В книжке "Строганов А.С - ваш первый сайт с использованием PHP скриптов. 2008 г." в примерах русские символы нормально считаются, перенос строки нормально работает (не упоминается в возможности появления такой ерунды). Вот что записалось в блокнот (рядом со словом СТРОКА): Подскажите, может что в PHP.ini настроить нужно, или в Apache. PHP v.5.2.8, Apache v.2.2.11-x86-no ssl. |
16.07.2009, 18:08 | #2 |
Старожил
Регистрация: 09.09.2008
Сообщений: 2,624
|
Длинна строки 31, тк ваш документ наверняка сохранён в utf-8, все символы из кирилицы занимают по 2 байта символа пробела 1 байт 15*2+1*1=31. И отображаются у Вас иероглифы тк Вы наверняка не указали кодировку тут
Код:
Судя по блокноту вы работаете под windows, в windows перенос строки обозначается 2 символами "\r\n".
Стрелок-охотник
|
16.07.2009, 20:20 | #3 |
Форумчанин
Регистрация: 26.10.2007
Сообщений: 124
|
mv28jam
За помощь с переносом большое спасибо, в книге не слова про то что в Windows это так. Странно книга современная вроде.. но вот с кодировкой так и не разобрался.. вот код (кстати прям из книги): Код:
Многое нормально, но вот эти иероглифы и квадратики аж бесят. Результат каждой функции пишется с новой строки. В коде функции разделяются абзацами. |
16.07.2009, 21:04 | #4 |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
Исходник сохранён в UTF-8, или сохрани его в Win-1251 или не знаю, может быть, можно как-то сделать, чтобы это работало с неоднобайтовыми кодировками. А так логически здесь правильно, 95 байт, в UTF-8 кириллица - два байта на символ, пробелы - один. Замена работает так, как и должна, upper - lower работают тут с какой-то другой кодировкой и дают фигню, rev переворачивает всё побайтово, однобайтовые пробелы "выжили", буквы испортились.
|
16.07.2009, 21:51 | #5 |
Участник клуба
Регистрация: 06.04.2009
Сообщений: 1,524
|
Слеши либо экранируй, либо пиши в формате UNIX
PHP код:
PHP код:
ЗЫ. Сори за оффтоп |
16.07.2009, 21:52 | #6 |
Форумчанин
Регистрация: 26.10.2007
Сообщений: 124
|
Somebody
ЕЕЕЕ, сохранил в ANSI кодировка, заработало !! ) мне mv28jam упомянал о том что файл у меня в UTF 8, а я забыл что менять при сохранении нужно. Всё, теперь всё как в книге, огромное вам спасибо ! psycho-coder Спасибо, буду знать теперь ) Последний раз редактировалось POPOV; 16.07.2009 в 21:54. |
10.11.2010, 22:38 | #7 |
Новичок
Джуниор
Регистрация: 10.11.2010
Сообщений: 1
|
mv28jam огрооооомное тебе спасибо за подсказку о переносе строк в Windows \r\n, пару ночей сидел в нете, нигде ни слова о данной команде (везде либо \n, либо \r). Еще раз спасибо!!!!!
|
11.11.2010, 09:44 | #8 |
Старожил
Регистрация: 19.04.2010
Сообщений: 2,702
|
Совет:
- Собирайте все выводимые строки в переменную, а только потом выводите. Будет значительно быстрее. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сайт не отображается в IE и Opera. Отображается только в FireFox. | Roman_K | HTML и CSS | 3 | 03.02.2011 22:32 |
Перенос строки по файлу | XAOC-forever | Общие вопросы C/C++ | 29 | 15.07.2009 17:44 |
Кирилица в C++ | ROD | Помощь студентам | 2 | 06.12.2008 14:50 |
Перенос строки | boostman | Общие вопросы Delphi | 2 | 08.08.2008 18:12 |