Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.07.2017, 17:57   #1
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию Оставить только символы русского языка

В MySQL поле имеет кодировку cp1251_general_cs
PHP скрипт в кодировке UTF-8
Забираю ее и проверяю кодировку:
Код:
echo "(".mb_detect_encoding($cod, "auto").")";
Пишет что UTF-8

Отображаю в браузере:
Код:
echo $cod."<br>";
Все нормально.

А вот попытки оставить только русские символы не увенчались успехом.
Пробовал разные регулярки и перекодировку строки.
Видимо, что то я делаю не так.

Может кто догадается в каком направлении мне рыть?
Illusiony вне форума Ответить с цитированием
Старый 22.07.2017, 18:02   #2
agmag
Пользователь
 
Регистрация: 15.07.2017
Сообщений: 31
По умолчанию

Вручную пройтись по символам строки, сравнивая код символа с 127. Если больше - то это символ кодировки UTF-8. Печатаем только их.
agmag вне форума Ответить с цитированием
Старый 22.07.2017, 18:12   #3
agmag
Пользователь
 
Регистрация: 15.07.2017
Сообщений: 31
По умолчанию

Код:
<?php

$s="привет poka привет poka";

for ($x = 0; $x < strlen($s); $x++) {
    $code = ord($s[$x]);
    
    if ($code>127){
		echo $s[$x];
	}
} 

?>
agmag вне форума Ответить с цитированием
Старый 22.07.2017, 18:29   #4
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Цитата:
Сообщение от agmag Посмотреть сообщение
Код:
<?php

$s="привет poka привет poka";

for ($x = 0; $x < strlen($s); $x++) {
    $code = ord($s[$x]);
    
    if ($code>127){
		echo $s[$x];
	}
} 

?>
Нужно чтобы еще были пробелы и всякие там кавычки
Illusiony вне форума Ответить с цитированием
Старый 22.07.2017, 18:37   #5
agmag
Пользователь
 
Регистрация: 15.07.2017
Сообщений: 31
По умолчанию

http://www.asciicharstable.com/_site...-landscape.jpg
Тогда, выводим только те, у которых код не лежит между 65 и 90(включительно) и между 97 и 122(включительно).
agmag вне форума Ответить с цитированием
Старый 22.07.2017, 19:51   #6
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

agmag, большое спасибо!
У меня, правда, проблема больше оказалась в том, что для вывода информации я еще использовал символы добавляя их к результату. В результате чего, я так понимаю осуществлялась автоматическая перекодировка, что приводила к ерунде.
Illusiony вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Парадоксы Русского языка Smitt&Wesson Свободное общение 0 31.05.2016 22:44
Отображение русского языка InFlux БД в Delphi 36 11.01.2016 16:29
некорректное отображение русского языка zlo_999 HTML и CSS 11 10.02.2015 13:19
поддержка русского языка в php Макарий PHP 4 08.12.2012 22:45