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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> строка как массив 
:(
    Опции темы
part_spb
Дата 3.6.2009, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



есть   переменная в котрой содержится   некоторое словj (в кодировке utf )
при обращении к отдельным буквам  слова   как  к элементам массива, возникают проблемы.
к примеру
$var="привет"    при   echo $var[2]    должна выводится буква и ,  но  этого не происходит.
понимаю  что это все из за utf-8, так как там используется 2 байта. может есть    подобное решение  для  UTF?
PM MAIL   Вверх
enof
Дата 3.6.2009, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



http://php.net/str_split
В соседней теме тоже самое.
PM MAIL ICQ Skype   Вверх
part_spb
Дата 3.6.2009, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



нет функция str_split  не правильно работает с utf-8 ,  если есть кирилица.

PM MAIL   Вверх
mogul82
Дата 4.6.2009, 01:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(part_spb @  3.6.2009,  20:23 Найти цитируемый пост)
 так как там используется 2 байта. м


В utf-8 используется 8 бит, ASCII 7 бит. а в Юникоде (utf-16) 16 бит.
Эт я так.

Это сообщение отредактировал(а) mogul82 - 4.6.2009, 01:51
PM MAIL   Вверх
enof
Дата 4.6.2009, 05:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



part_spb, для этого случая есть mb_* функции.
Цитата(mogul82 @  4.6.2009,  02:51 Найти цитируемый пост)
В utf-8 используется 8 бит, ASCII 7 бит. а в Юникоде (utf-16) 16 бит.

Спасибо, не знал.
PM MAIL ICQ Skype   Вверх
unicross
Дата 4.6.2009, 10:47 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

<?php
header('Content-Type: text/html; charset=utf-8');
$str = 'Строка';
$count = mb_strlen($str, 'UTF-8');
$arr = array();
for ($i=0; $i<$count; $i++) {
   $arr[] = mb_substr($str, $i, 1, 'UTF-8');
}
echo '<pre>';
print_r($arr);
echo '</pre>';
?>

Цитата(mogul82 @  4.6.2009,  02:51 Найти цитируемый пост)
В utf-8 используется 8 бит, ASCII 7 бит. а в Юникоде (utf-16) 16 бит.

mogul82, к вашему сведению. Кодировка UTF-8 кодирует символы разным количеством байт. От 1 байта до 6 байт (в реальности только до 4 байт). Русские буквы кодируются 2 байтами (т.е. 16 битами). Текст, состоящий только из символов с номером меньше 128, при записи в UTF-8 превращается в обычный текст ASCII.

PM MAIL WWW   Вверх
mogul82
Дата 4.6.2009, 12:19 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



unicross
Ты где ерунды такой начитался?

Мож они и превращаються но храняться так как я сказал.

Это сообщение отредактировал(а) mogul82 - 4.6.2009, 12:21
PM MAIL   Вверх
unicross
Дата 4.6.2009, 12:34 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(mogul82 @  4.6.2009,  13:19 Найти цитируемый пост)
Ты где ерунды такой начитался?

http://ru.wikipedia.org/wiki/UTF-8
Если бы символы русского алфавита кодировались всего 8 битами, то хватило бы функции str_split(), а также можно было бы обратиться в символу как к элементу массива...
PM MAIL WWW   Вверх
part_spb
Дата 4.6.2009, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



да, спасибо всем проблема  частиччно решилась 
mogul82 , unicross   все правильно говорит   при использовании кририлицы  в UTF-8 используется два  байта, но не как не    8бит  (1байт)

Это сообщение отредактировал(а) part_spb - 4.6.2009, 12:37
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0870 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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