если так написать:
echo mb_strlen("щ","utf-8");
виведет: 1
а если есть фаил text.txt и он содержит толко один симбол - щ и так написатъ:
mb_strlen(file_get_contents("text.txt"),"utf-8");
виведет: 2
почему во втаром случе виведится 2 а не 1 ?
Спустя 17 минут, 11 секунд (31.08.2011 - 13:20) Игорь_Vasinsky написал(а):
mb_strlen(trim(str_replace("\r\n", "", file_get_contents("text.txt"))),"utf-8");
Спустя 18 минут, 33 секунды (31.08.2011 - 13:39) dadli написал(а):
Игорь_Vasinsky
но почемуто все ровно 2 виведетъ, а в фаиле text.txt написано толко один симбол: щ
но почемуто все ровно 2 виведетъ, а в фаиле text.txt написано толко один симбол: щ
Спустя 3 минуты, 55 секунд (31.08.2011 - 13:42) Игорь_Vasinsky написал(а):
посмотри всё так
echo nl2br(file_get_contents("text.txt"));
Спустя 7 минут, 10 секунд (31.08.2011 - 13:50) alex12060 написал(а):
dadli
Это же юникод, чего ты ожидал? :)
Попробуй вставить этот символ:
Еще прикол увидишь.
Это же юникод, чего ты ожидал? :)
Попробуй вставить этот символ:
が
Еще прикол увидишь.
Спустя 44 секунды (31.08.2011 - 13:50) linker написал(а):
Есть непечатные символы вроде переноса строк, они также учитываются. Поэтому
file_get_contents("text.txt", FILE_IGNORE_NEW_LINES)
Спустя 1 минута, 22 секунды (31.08.2011 - 13:52) alex12060 написал(а):
Надо делать так в общем:
echo mb_strlen(file_get_contents('test.txt'), 'UTF-8');
Спустя 1 минута, 48 секунд (31.08.2011 - 13:54) Игорь_Vasinsky написал(а):
linker
да.. наверно эт и есть...
а может и файл в юникоде с BOM сохранён..
да.. наверно эт и есть...
а может и файл в юникоде с BOM сохранён..
Спустя 16 минут, 16 секунд (31.08.2011 - 14:10) dadli написал(а):
Игорь_Vasinsky
виведет щ
alex12060
да юникод, но ожидал 1 потому что исползовал mb_strlen() =)
может бит ти имеел в виду strlen()
strlen("が") етот виведет: 3 =)
linker
так написал:
еше 2 виведет
ну спасибо всем сутъ понял,
виведет щ
alex12060
да юникод, но ожидал 1 потому что исползовал mb_strlen() =)
может бит ти имеел в виду strlen()
strlen("が") етот виведет: 3 =)
linker
так написал:
echo mb_strlen(file_get_contents("dinamiki.txt",FILE_IGNORE_NEW_LINES),"utf-8");
еше 2 виведет
ну спасибо всем сутъ понял,
Цитата |
в конце фаила Есть непечатные символы вроде переноса строк, они также учитываются |
спасибо всем
Спустя 3 минуты, 33 секунды (31.08.2011 - 14:13) dadli написал(а):
Игорь_Vasinsky
да ви прави
сохранил без бом и уже етот (как linker сказал)
виведет 1
да ви прави
сохранил без бом и уже етот (как linker сказал)
echo mb_strlen(file_get_contents("text.txt",FILE_IGNORE_NEW_LINES),"utf-8");
виведет 1
Спустя 2 минуты, 50 секунд (31.08.2011 - 14:16) linker написал(а):
BOM - два байта, если мне изменяет память, а значит в результате должно получиться 3. Здесь 2, а значит скорее всего либо перенос строки, либо пробел в конце. Делать надо либо, если пробелы считаем
P.S. Я так понял, что BOM таки был виноват.
echo mb_strlen(file_get_contents('test.txt', FILE_IGNORE_NEW_LINES), 'UTF-8');либо
echo mb_strlen(trim(file_get_contents('test.txt')), 'UTF-8');если начальные и конечные пробелы не считаем. trim() удаляет также и переносы строк и табуляции и прочее.
P.S. Я так понял, что BOM таки был виноват.
Спустя 9 минут, 58 секунд (31.08.2011 - 14:26) dadli написал(а):
linker
Цитата |
P.S. Я так понял, что BOM таки был виноват. |
да BOM бил виноват =)
_____________
когда чарли чаплин принимал участие в конкурсе: "клон чарли чаплинов", то чарли занимал третю позицию.