[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: strtoupper()
nugle
Почему если сделать так
<?php

$str = "Михаил";
echo strtoupper($str);


выводит ЌШхаШл?





Спустя 4 минуты, 26 секунд (4.04.2011 - 17:02) sharki написал(а):
Для этого есть mb_strtoupper для работы с юникодом

Спустя 4 минуты, 14 секунд (4.04.2011 - 17:07) nugle написал(а):
не переводит вверхний ригистр!

Спустя 3 минуты, 33 секунды (4.04.2011 - 17:10) sharki написал(а):
Цитата
МИХАИЛ

Всё нормально выводит

Спустя 5 минут, 23 секунды (4.04.2011 - 17:16) nugle написал(а):
у меня ЌШхаШл

Спустя 5 минут, 46 секунд (4.04.2011 - 17:21) sharki написал(а):
nugle
$str = "Михаил";
echo mb_strtoupper($str);


хедер с кодировкой отправь, посмотри. вставь мою функцию, перезагрузи свой сервер, магии не бывает.

Спустя 6 минут (4.04.2011 - 17:27) nugle написал(а):
просто Михаил остается

header("charset utf-8");

$str = "Михаил";
echo mb_strtoupper($str);

Спустя 6 минут, 36 секунд (4.04.2011 - 17:34) sharki написал(а):
не правильно
header("charset utf-8");

Надо писать полностью!
header("Content-Type: text/html;charset=utf-8");

Спустя 1 минута, 18 секунд (4.04.2011 - 17:35) nugle написал(а):
результат тот же Михаил

Спустя 1 минута, 43 секунды (4.04.2011 - 17:37) sharki написал(а):
Херня какая то, у меня всё норм. Создай новый php скрипт скопипасть мой код и запусти его.

Спустя 15 секунд (4.04.2011 - 17:37) alex12060 написал(а):

echo mb_strtoupper($str, 'UTF-8');

Спустя 20 минут, 22 секунды (4.04.2011 - 17:58) nugle написал(а):
alex12060
твой вариант прокатил
sharki, а твой к сожалению нет!
В итоге всем спасибо!

Спустя 2 минуты, 28 секунд (4.04.2011 - 18:00) nugle написал(а):
а возможно ли 1 букву слова сделать заглавной, а все остальные маленькими?или только своей функцией?

Спустя 2 минуты, 34 секунды (4.04.2011 - 18:03) sharki написал(а):
ucfirst()

Спустя 1 минута, 40 секунд (4.04.2011 - 18:04) alex12060 написал(а):
sharki

В утф не прокатит. Надо самому написать...

Спустя 3 минуты, 24 секунды (4.04.2011 - 18:08) sharki написал(а):
Тогда
echo mb_convert_case($str, MB_CASE_TITLE, "UTF-8");

Спустя 7 секунд (4.04.2011 - 18:08) nugle написал(а):
а ну тогда спасибо, я как раз ucfirst() пробывал не прокатило, написал свою
function checkUserName($name)
{
$firstW = mb_strtoupper(substr($name, 0, 2), 'UTF-8');
$name = mb_strtolower(substr($name, 2), 'UTF-8');
$name = $firstW.''.$name;
return $name;
}


sharki, alex12060, спасибо

Спустя 1 минута, 39 секунд (4.04.2011 - 18:10) alex12060 написал(а):
sharki

О, круто) Себе на заметку взял...

Спустя 1 час, 19 минут, 42 секунды (4.04.2011 - 19:29) Invis1ble написал(а):
nugle
А если первый символ в строке будет латинский, то функция сработает некорректно:
echo checkUserName('vasya');

Спустя 57 минут, 7 секунд (4.04.2011 - 20:26) Trianon написал(а):
Еще хуже будет, если первый символ окажется ascii (т.е. однобайтовым) , а второй - ногобайтовым.
Или если первый символ будет более чем из двух байт.
substr порвет поток байт посредине символа.

Спустя 19 минут, 34 секунды (4.04.2011 - 20:46) nugle написал(а):
Invis1ble
дело в том что это для русских слов только, вначале проверяется на русский алфавит, ну а потом функция, но я все равно у sharki ф-ию взял
Быстрый ответ:

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