[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Строковые функции
fredrsf
Подскажите плизз. Кодировка в ide UTF-8 без BOM. В общем когда работаю со строковыми функциями и использую русские буквы, то результат работы удивляет. strlen например выдает длину в 2 раза большую, остальные как то тоже не адекватно реагируют. В чем причина? Спасибо



Спустя 5 минут, 27 секунд (15.10.2010 - 13:06) arvitaly написал(а):
Юзайте библиотеку multybyte. http://php.net/manual/en/book.mbstring.php

Спустя 48 минут, 48 секунд (15.10.2010 - 13:55) fredrsf написал(а):
Цитата (arvitaly @ 15.10.2010 - 10:06)
Юзайте библиотеку multybyte. http://php.net/manual/en/book.mbstring.php

Ээээ... Ок, спасибо. А можно ли узнать почему так??? И возможно обойтись ли без этой библиотеки???

Спустя 11 минут, 11 секунд (15.10.2010 - 14:06) linker написал(а):
Стандартные функции работы со строками не имеют понятия об UTF-8, в которой один символ может занимать два байта. Поэтому и длинна получается в два раза больше, т.к. например strlen() считает количество байт занимаемых строкой и не учитывает, что это может быть UTF-8.

Спустя 22 минуты, 15 секунд (15.10.2010 - 14:29) fredrsf написал(а):
Цитата (linker @ 15.10.2010 - 11:06)
Стандартные функции работы со строками не имеют понятия об UTF-8, в которой один символ может занимать два байта. Поэтому и длинна получается в два раза больше, т.к. например strlen() считает количество байт занимаемых строкой и не учитывает, что это может быть UTF-8.

Понял, спасибо большое!!!

Спустя 5 дней, 19 часов, 39 минут, 8 секунд (21.10.2010 - 10:08) fredrsf написал(а):
Товарищи, новая проблема... Значит стоит Drupal в нем кодировка UTF-8. Теперь, когда я средствами пхп делаю вывод файлов на странице, файлы с русской кодировкой( Windows-1251) выводятся с кракозябрами, если в браузере поменять на виндовскую, то русские смотрятся норм, а вот все остальное кракозябрами. Так же если средствами пхп создать папку, то на странице ее имя выводится в UTF-8 и все в порядке, но через винду когда смотришь на имя там кракозябры. Я так понимаю, надо играться с вышесказанной библиотекой. Но что-то пока тяжело мне((( Как можно сделать, чтобы пхп при отображении выбирал нужную кодировку???? То есть как решить такую проблему?((( Большое спасибо!

Спустя 3 минуты, 24 секунды (21.10.2010 - 10:11) Michael написал(а):
Цитата (fredrsf @ 21.10.2010 - 09:08)
Товарищи, новая проблема... Значит стоит Drupal в нем кодировка UTF-8. Теперь, когда я средствами пхп делаю вывод файлов на странице, файлы с русской кодировкой( Windows-1251) выводятся с кракозябрами,

надо перекодировать:
echo iconv('windows-1251', 'utf-8', $file);

Спустя 1 минута, 46 секунд (21.10.2010 - 10:13) twin написал(а):
PHP не выбирает никаких кодировок. Какую пропишешь, такая и будет. По этому никаких файлов
Цитата
с русской кодировкой( Windows-1251)
быть не должно и в помине.

Спустя 8 минут, 35 секунд (21.10.2010 - 10:22) fredrsf написал(а):
Цитата (twin @ 21.10.2010 - 07:13)
PHP не выбирает никаких кодировок. Какую пропишешь, такая и будет. По этому никаких файлов
Цитата
с русской кодировкой( Windows-1251)
быть не должно и в помине.

Что быть не должно, не понял?

Спустя 1 минута, 23 секунды (21.10.2010 - 10:23) Michael написал(а):
он говорит о том, чтобы твои файлы хранить в utf-8 кодировке. Эти файлы - с какими то данными?

Спустя 13 минут, 2 секунды (21.10.2010 - 10:36) fredrsf написал(а):
Цитата (Michael @ 21.10.2010 - 07:23)
он говорит о том, чтобы твои файлы хранить в utf-8 кодировке. Эти файлы - с какими то данными?

Да самые обычные файлики. Тут речь о их именах. Когда я использую в пхп mkdir, то потом в браузере ее название нормально отображается. А когда копирую папку с русским названием с винды на сервер, то при просмотре в браузере она кракозябрами, меняю в браузере кодировку на win1251 имя папки нормально, сайт соответственно нет. С файлами такая же ситуация.

Спустя 6 минут, 53 секунды (21.10.2010 - 10:43) Michael написал(а):
Вот обязательно вам надо в имена папок/файлов кириллицу пихать. Давно же известно - из-за этого странные глюки.

По ситуации(если изменить нельзя):
значит реши для себя - как будешь создавать файлы/папки.
1)Если через php, то будет utf-8. Тогда не копируй с винды такие файлы/папки.
2)Если важно копировать то создавая на php перекодируй в win-1251 (функцией iconv), а при выводе в док-т - обратно перекодируй.


_____________
Фриланс-студия webthrust. Создание, поддержка и продвижение сайтов.
Быстрый ответ:

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