а браузер по умолчанию открывает в 1251.. почему? сам файл php utf-8 без BOM
Спустя 12 минут, 45 секунд (11.03.2012 - 22:36) Ser18 написал(а):
В начале файла напишите
header("Content-type: text/html; charset=utf8");
Спустя 1 час, 16 минут, 7 секунд (11.03.2012 - 23:52) ADiel написал(а):
можно еще в .htaccess добаить AddDefaultCharset utf-8
Спустя 11 часов, 4 минуты, 53 секунды (12.03.2012 - 10:57) TS написал(а):
Здравствуйте!
вариант с
не сработал - пишут, что заголовок уже отправлен.
а вот
сработало. Спасибо :)
Но возникла новая проблемка
Итак:
Файл в utf-8 без BOM
Денвер последняя версия
рядом с файлом .htaccess со строкой AddDefaultCharset utf-8
испробованные браузеры - ие9 и файрфокс 10.
содержимое файла test.php
На экран выводит
Вася
�
если номер в скобках поставить другим, то может вообще не быть символа.. или опять вопрос..
почему так происходит? целиком слово нормально выводится, а посимвольно не работает..
вариант с
header("Content-type: text/html; charset=utf8");
не сработал - пишут, что заголовок уже отправлен.
а вот
.htaccess добаить AddDefaultCharset utf-8
сработало. Спасибо :)
Но возникла новая проблемка
Итак:
Файл в utf-8 без BOM
Денвер последняя версия
рядом с файлом .htaccess со строкой AddDefaultCharset utf-8
испробованные браузеры - ие9 и файрфокс 10.
содержимое файла test.php
<?php
$name='Вася';
echo $name."<br>";
echo $name[1];
?>
На экран выводит
Вася
�
если номер в скобках поставить другим, то может вообще не быть символа.. или опять вопрос..
почему так происходит? целиком слово нормально выводится, а посимвольно не работает..
Спустя 6 минут, 26 секунд (12.03.2012 - 11:03) Rigel написал(а):
хм, точно ли utf без BOM?
в notepad++ попробуй преобразовать.
в notepad++ попробуй преобразовать.
Спустя 4 минуты, 27 секунд (12.03.2012 - 11:08) Guest написал(а):
да. без ВОМ ютф-8 как раз там это и делал.
Спустя 4 минуты, 14 секунд (12.03.2012 - 11:12) Rigel написал(а):
Guest
да, странно, воспроизвел у себя - тоже самое
первый раз такое вижу
да, странно, воспроизвел у себя - тоже самое
первый раз такое вижу
Спустя 3 минуты, 29 секунд (12.03.2012 - 11:15) Visman написал(а):
Получается, что берется байт под номером 1, а не символ строки под номером 1.
Спустя 2 минуты, 47 секунд (12.03.2012 - 11:18) alex12060 написал(а):
Русский символ из UTF-8 состоит из 2-х байтов, Японский иероглиф - 3 байта.
Вот поэтому и косяк.
Вот поэтому и косяк.
Спустя 17 минут, 46 секунд (12.03.2012 - 11:36) Guest написал(а):
Цитата (Visman @ 12.03.2012 - 08:15) |
Получается, что берется байт под номером 1, а не символ строки под номером 1. |
спасибо всем за разъяснение.
теперь понятно.
но появляется соответствующий вопрос - как же тогда брать значение конкретного по номеру символа в строке?
для поиска в цикле надо..
если первый символ в строке равен тому, то..
если нный символ в строке равен тому, то..
Спустя 10 минут, 31 секунда (12.03.2012 - 11:47) Visman написал(а):
mb_substr(строка, номер позиции, 1)
Спустя 47 секунд (12.03.2012 - 11:47) ADiel написал(а):
<?php
$str = "Строчка";
preg_match_all("/.{1}/u",$str,$arr );
var_dump($arr);
Выводит
array(1) {
[0]=>
array(7) {
[0]=>
string(2) "С"
[1]=>
string(2) "т"
[2]=>
string(2) "р"
[3]=>
string(2) "о"
[4]=>
string(2) "ч"
[5]=>
string(2) "к"
[6]=>
string(2) "а"
}
}
Кстати, из string(2) видно, что действительно 2 байта = 1 русский символ
Спустя 1 минута, 20 секунд (12.03.2012 - 11:49) Winston написал(а):
$str = "Строчка";
$array = preg_split('//u', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($array);
Спустя 3 минуты, 26 секунд (12.03.2012 - 11:52) ADiel написал(а):
Вариант от Winston удобнее, т.к. можно вставить preg_split прямо в foreach
Спустя 2 дня, 39 минут, 42 секунды (14.03.2012 - 12:32) nikki4 написал(а):
спасибо за ответ :)
плюсик пока не могу ставить 10 постов надо..
вот заодно и спрошу:
что значит регулярное выражение
никак не могу разобраться что оно означает..хотя что делает догадываюсь
плюсик пока не могу ставить 10 постов надо..
вот заодно и спрошу:
что значит регулярное выражение
'//u'
?никак не могу разобраться что оно означает..хотя что делает догадываюсь
Спустя 9 минут, 22 секунды (14.03.2012 - 12:41) ADiel написал(а):
Это пустая регулярка с ключом utf
Режет посимвольно
Режет посимвольно