Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.84/49: Рейтинг темы: голосов - 49, средняя оценка - 4.84
manechka
0 / 0 / 0
Регистрация: 26.01.2015
Сообщений: 29
#1

Кодировка UTF-8 не работает, выводятся ? вместо русских букв

07.04.2015, 17:50. Просмотров 8826. Ответов 24
Метки нет (Все метки)

Добрый день, помогите, плз!!

Крутила я кодировки и так и эдак и все равно выводятся знаки вопросов

1. прописала кодировку UTF-8 в HTML (meta charset);
2. прописала кодировку в PHP (header charset);
3. прописала кодировку в файле .htaccess - AddDefaultCharset UTF-8 ;
4. пробовала указывать кодировку в редакторе и UTF-8, и UTF-8 without BOM;
5. даже прописала локаль 'russian'

ЧТо еще можно попробовать сделать, чтоб решить проблему???

Вот код:
PHPHTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
    header("Content-Type: text/html; charset=utf-8");
    UTF
    /* Установка русской локали */
setlocale(LC_ALL, 'russian');
?>
 
 
<!DOCTYPE html>
 
<html>
 
    <head>
        <title>Оператор while</title>
        <meta charset="UTF-8">
    </head>
    
    <body>
    <h1>Оператор while</h1>
    <?php
        
        $var = "ТЕСТИРУЕМ";         
        $letter_number = 0;     
                        
        while ($letter_number < strlen($var))
            { echo $var{$letter_number++} . '<br>' ; }
        
        
        
    ?>
    </body>
 
</html>
и вот что у меня выходит в браузере:
0
Миниатюры
Кодировка UTF-8 не работает, выводятся ? вместо русских букв  
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2015, 17:50
Ответы с готовыми решениями:

Mb_function и поддержка русских букв в кодировке UTF-8
Доброе время суток, я только-только начал познавать азы PHP. Столкнулся с...

Почему вместо русских букв иероглифы? ( UTF-8 )
Приветствую, форумчане. Редактирую один скрипт и в всплывающих окнах, в самой...

Кодировка русских букв
Такая задача, есть скрипт, который пишет в файл данные и русские буквы...

Знаки ? вместо русских букв
Сразу скажу, я полный новичок в php, только открыл руководство с оф. сайта....

Вместо русских букв - знаки
Здравствуйте,уважаемые участники форума! У меня проблема - вместо русских букв...

24
Inkvizzz
45 / 45 / 21
Регистрация: 09.10.2012
Сообщений: 798
07.04.2015, 17:54 #2
manechka, В браузере кодировку меняла?
0
Dolphin
805 / 790 / 199
Регистрация: 21.09.2012
Сообщений: 2,631
07.04.2015, 18:00 #3
Проблема не в кодировке, а в программной ереси которая там написана.
1
Max_Great_Tanker
46 / 53 / 22
Регистрация: 31.03.2015
Сообщений: 266
07.04.2015, 18:01 #4
А надо наоборот поставить Windows-1251.
Если появляются знаки вопроса или квадратики, надо ставить Windows-1251.
Если наоборот появляются каракули, надо ставить только тогда UTF-8.
0
manechka
0 / 0 / 0
Регистрация: 26.01.2015
Сообщений: 29
07.04.2015, 18:18  [ТС] #5
Dolphin, то, что там написано, работает, если текст написать на английском языке.

Добавлено через 1 минуту
Inkvizzz, ага, в браузере стоит тоже кодировка UTF-8
0
Max_Great_Tanker
46 / 53 / 22
Регистрация: 31.03.2015
Сообщений: 266
07.04.2015, 18:20 #6
manechka, кодировка в браузере регулируется как раз сайтом, но её можно менять вручную.
0
Dolphin
805 / 790 / 199
Регистрация: 21.09.2012
Сообщений: 2,631
07.04.2015, 18:24 #7
Цитата Сообщение от manechka Посмотреть сообщение
работает, если текст написать на английском языке.
И? Почему вдруг сразу кодировка?
0
RinaFolk
0 / 0 / 0
Регистрация: 13.11.2014
Сообщений: 35
07.04.2015, 18:28 #8
manechka, проблема бывает еще в том, что при работе в определенных редакторах в начало файла, перед тегом <?php, редактор дописывает невидимые символы.

у меня такое было в sublime. пришлось поменять редактор.

хорошая программка на проверку таких символов называется XVI32.

скорее всего я ошибаюсь...но проверить стоит) избежишь других проблем.
0
manechka
0 / 0 / 0
Регистрация: 26.01.2015
Сообщений: 29
07.04.2015, 18:29  [ТС] #9
Цитата Сообщение от Dolphin Посмотреть сообщение
И? Почему вдруг сразу кодировка?
подскажите тогда, пожалуйста, в чем именно, на ваш взгляд, тут проблема.
0
Dolphin
805 / 790 / 199
Регистрация: 21.09.2012
Сообщений: 2,631
07.04.2015, 18:33 #10
Нужен именно While?
0
RinaFolk
0 / 0 / 0
Регистрация: 13.11.2014
Сообщений: 35
07.04.2015, 18:36 #11
manechka,

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!DOCTYPE html>
 
<html>
 
    <head>
        <title>Оператор while</title>
        <meta charset="UTF-8">
    </head>
 
    <body>
    <h1>Оператор while</h1>
    <?php
 
        $var = "ТЕСТИРУЕМ";
        $letter_number = 0;
 
        while ($letter_number < strlen($var))
            { echo $var{$letter_number++} . '<br>' ; }
 
 
 
    ?>
    </body>
 
</html>
при таком коде, в сохраненной кодировке файла utf-8, у меня все выводит правильно.

вы в каком редакторе пишете?
0
Max_Great_Tanker
46 / 53 / 22
Регистрация: 31.03.2015
Сообщений: 266
07.04.2015, 18:38 #12
manechka, прислушайтесь ко мне. Я сам так решил проблему на одном сайте.
Заморочки с кодировкой зависят от хостинга.
0
manechka
0 / 0 / 0
Регистрация: 26.01.2015
Сообщений: 29
07.04.2015, 18:42  [ТС] #13
Цитата Сообщение от Dolphin Посмотреть сообщение
Нужен именно While?
да, я делаю точь-в-точь все, как лектор (учусь по видео-урокам).

также я только что заметила, что этот код работает с русским текстом адекватно, если выводить все в строку

но как только я добавляю <br> для отображения букв в столбик, то сразу все превращается в знаки вопроса.

Добавлено через 45 секунд
Цитата Сообщение от RinaFolk Посмотреть сообщение
вы в каком редакторе пишете?
нотпад ++

Добавлено через 28 секунд
Цитата Сообщение от Max_Great_Tanje Посмотреть сообщение
manechka, прислушайтесь ко мне. Я сам так решил проблему на одном сайте.
Заморочки с кодировкой зависят от хостинга.
так а где вы советуете менять кодировку? я так и не поняла
0
ads
364 / 371 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
07.04.2015, 18:45 #14
Цитата Сообщение от Dolphin Посмотреть сообщение
Проблема не в кодировке, а в программной ереси которая там написана.
+100500. кстати strlen не работает с юникодом. это в копилку "ереси". И сам скрипт должен быть написан в юникоде..
Цитата Сообщение от Max_Great_Tanje Посмотреть сообщение
А надо наоборот поставить Windows-1251.
ересь не только в коде от ТС но и в ответах..
Цитата Сообщение от Max_Great_Tanje Посмотреть сообщение
Заморочки с кодировкой зависят от хостинга.
не позорьтесь..
0
Dolphin
805 / 790 / 199
Регистрация: 21.09.2012
Сообщений: 2,631
07.04.2015, 19:01 #15
Нужен именно While?
Цитата Сообщение от manechka Посмотреть сообщение
PHP
1
2
3
header("Content-Type: text/html; charset=utf-8");
* * UTF
* * /* Установка русской локали */
Так же, что такое UTF на отдельной строке?

Добавлено через 14 минут
ИМХО, правильнее будет так..
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
    header("Content-Type: text/html; charset=utf-8");
    mb_internal_encoding('UTF-8');
?><!DOCTYPE html>
<html>
    <head>
        <title>Оператор while</title>
        <meta charset="UTF-8">
    </head>
    
    <body>
    <h1>Оператор while</h1>
    <?php
        $var = "ТЕСТИРУЕМ";         
        $letter_number = 0;     
                        
        while ($letter_number < mb_strlen($var)) { 
            echo mb_substr($var, $letter_number++, 1) . '<br>' ; 
        }
    ?>
    </body>
</html>
1
manechka
0 / 0 / 0
Регистрация: 26.01.2015
Сообщений: 29
07.04.2015, 19:06  [ТС] #16
ads, я понимаю, что Вы крутой продвинутый веб-разработчик, но зачем накидываться с такими резкими фразами на новичков...

Добавлено через 3 минуты
Dolphin, то левое UTF на отдельной строке мой завтык. Я понимаю, что его там не должно быть. В спешке, видимо, клацнула. Доеду до дома, попробую Ваш код. Спасибо. А может быть проблема в локальном сервере?
0
Dolphin
805 / 790 / 199
Регистрация: 21.09.2012
Сообщений: 2,631
07.04.2015, 19:08 #17
Цитата Сообщение от manechka Посмотреть сообщение
А может быть проблема в локальном сервере?
В данном случае нет
0
Sergio Leone
2467 / 1112 / 579
Регистрация: 07.06.2014
Сообщений: 3,259
07.04.2015, 19:33 #18
а у меня такой код вывел нормально (сам php файлик в кодировке UTF8, конечно)

PHP
1
2
        while ($letter_number < strlen($var)) 
            { echo substr($var,$letter_number,2) . '<br>' ; $letter_number +=2;}
0
Max_Great_Tanker
46 / 53 / 22
Регистрация: 31.03.2015
Сообщений: 266
07.04.2015, 20:42 #19
manechka, в любом месте. Ну в том же .htaccess. AddDefaultCharset Windows-1251.ads, мне это реально помогло. Это мой личный опыт.
0
ads
364 / 371 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
07.04.2015, 20:53 #20
Цитата Сообщение от Sergio Leone Посмотреть сообщение
а у меня такой код вывел нормально (сам php файлик в кодировке UTF8, конечно)
PHP
1
2
while ($letter_number < strlen($var)) 
 { echo substr($var,$letter_number,2) . '<br>' ; $letter_number +=2;}
латинские буквы это 1 байт, русские буквы 2 байта. Для русской строки вывод будет нормальный. А если там появятся латинские - нормального вывода не будет... Продолжайте эксперементировать господа..есть еще utf16 и utf32, со временем разберетесь в способах кодировки. Не бросаясь резкими фразами предложу почитать хотя бы википедию, офф сайт по php...стандарты... и не смотреть видеоуроки, которые создают дилетанты для недоумков
1
07.04.2015, 20:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2015, 20:53

Выводит иероглифы вместо русских букв
Здравствуйте! Вместо 'Привет Мир!' выводит � � � � � � � � � � � ! ...

Непонятные кракозябры вместо русских букв
Очень странная ситуация. Пользователь вводит данные, данные через javascript...

INSERT запрос, вопросики вместо русских букв
INSERT запрос вместо русских букв ??? mysql_query(&quot;SET NAMES utf8&quot;); вот что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru