SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...

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

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

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

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

Похожие вопросы