Задать вопрос
@gamburger22

Не работает скрипт с кириллицей?

Есть скрипт
<?php
function generatePassword($length = 8){
$chars = 'йцу';
$numChars = strlen($chars);
$string = '';
for ($i = 0; $i < $length; $i++) {
$string .= substr($chars, rand(1, $numChars) - 1, 1);
}
return $string;
}
$n = "" . generatePassword(8) . "\n";

echo iconv_mime_encode('blabla: ', $n, array('input-charset' => 'UTF-8', 'output-charset' => 'windows-1251'));
?>
Вот скрипт, вывод которого не работает. Ошибок нету, но ничего не отображается (как будто и нету echo)
НО если заменить $chars на англ символы(qwer...) - все будет отлично работать.
В чем проблема, что с кириллицей не работает и как сделать что бы работало с ру символами?
Заранее спасибо
  • Вопрос задан
  • 491 просмотр
Подписаться 1 Оценить Комментировать
Решения вопроса 1
allard
@allard
Серийный программист
Смотрите доку по mb_strlen и mb_substr. У вас проблема в том, что у кирилице в utf-8 отводится на символ 2 байта, а strlen и substr работаю только для 1байтных символов.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
skobkin
@skobkin
Гентушник, разработчик на PHP и Symfony.
Возможно, имеет смысл взглянуть сюда: php.net/manual/ru/book.mbstring.php
Ответ написан
Adobe
@Adobe
php developer
mb_strlen
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы