Задать вопрос
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...

Как выявить символы не поддерживаемые кодировкой?

Есть легаси таблица в кодировке koi8r и админка через которую вносят в неё текст, который зачастую содержит не поддерживаемые символы вроде знака рубля (с фронта данные прилетают в utf-8).
Соответственно встала задача уведомлять пользователей о попытках внести текст с не поддерживаемыми символами.
Единственное что приходит на ум - это конвертнуть строку в koi8r и сравнить посимвольно, но возможно есть какие-то более элегантные варианты?
P.S. увы, возможности сменить кодировку таблицы нет
  • Вопрос задан
  • 244 просмотра
Подписаться 2 Средний 7 комментариев
Решения вопроса 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
Двойной конверт через iconv() нормальный и "не дорогой" вариант utf8 -> koi8r -> utf8
Можно используйте флаги типа //TRANSLIT или //IGNORE
Соотв-но если изначальный utf8 не равен итоговому utf8 значит в исходной строке были символы вне кодовой таблицы koi8r

Так же можно попробовать часто-используемые символы типа символа рубля закодировать в ₽ или ₽. Естественно если при отображении данных делается escaping для html (html_entity_encode / htmlspecialchars) это надо будет учесть чтобы & не превратился в &
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Lachestry Таганрог
от 170 000 до 200 000 ₽
SpectrumData Екатеринбург
от 150 000 до 220 000 ₽
14 дек. 2024, в 07:35
500 руб./за проект
14 дек. 2024, в 05:57
50000 руб./за проект
14 дек. 2024, в 02:49
500 руб./за проект