кодировка символов — Как преобразовать странный сильный / жирный Unicode в не жирный UTF-8 символов в php?

Я пытаюсь сохранить твит в своей базе данных с помощью Twitter API,
но я получаю такие странные символы, которые кажутся «натуральными» жирными символами

НОРМАЛЬНЫЕ ЧАРСЫ:

azertyuio

Странные символы:

������ ���� ���������� ������ ������ ��������������������!!

Если я вставлю символы сильных в мой редактор NetBeans, я получу что-то вроде квадратных символов …

Я никогда не видел этого раньше. Не могли бы вы помочь мне преобразовать этот текст в не жирный шрифт в php?

0

Решение

Это одна из причин использования кодировки символов UTF или HTML, а не ANSI. UTF позволяет хранить и отображать подобные символы (и символы других языков), обрабатывать запросы, когда кто-то вводит эти символы в эти языки / кодировки (которые будут соответствовать только тем вещам, которые написаны этими же символами), и так далее.

В качестве альтернативы вы можете написать «преобразование» для каждого нечетного набора символов, который люди захотят использовать. Тем не менее, конвертировать их можно — вам просто нужно решить, действительно ли это стоит вашего времени.

Представленные вами символы называются математическими жирным шрифтом без засечек. Вы можете найти список здесь на w3.org. Также есть стандартные, наклонные, наклонные полужирные варианты только для них (используйте предыдущую и следующую ссылки вверху этой страницы).

Проблема, с которой вы столкнетесь, заключается в том, что, в отличие от переключения прописных букв в нижний регистр (добавьте 32 к десятичному значению или chr(ord(x)+32) ) не будет установленного десятичного числа, которое можно использовать для переключения всех символов с математического полужирного на эквивалент ANSI для каждой из групп символов. Кроме того, ord () и chr () не будут работать для этих символов.

Пример:

�� равно 120302, а равно 97. 120302 — 97 = 120205
�� равно 120276, А равно 65. 120276 — 65 = 120211

Таким образом, вычитание 120205 даст вам правильную строчную букву a для ��, однако то же самое не сработает для ��. Это означает, что вам нужно будет определить, какой кодировке является символ (Математический полужирный, Наклонный математический и т. Д.), Определить подмножество, к которому он принадлежит (a-z, A-Z, 0-9), а затем использовать соответствующее смещение, которое вы рассчитали, чтобы исправить его. Чтобы сделать это, вы должны проверить каждый символ каждого твита на наличие символов, которые вписываются в один из поддерживаемых вами кодировок преобразования, а затем преобразовать его в эти буквы.

Это может стоить сделать, если существует большое количество твитов, использующих только математический жирный шрифт, но если вы импортируете большие наборы твитов *, которые могут содержать всевозможные потенциальные символы, вам предстоит много работы.

Если вы считаете, что это того стоит, первое, что вам нужно сделать, это посмотреть на необработанную кодировку символов, которую вы получаете от API, нужно ли ее преобразовывать, а затем решите, хотите ли вы отобразить между кодировками, используя массив символов, используйте диапазон значений для подмножеств или какой-либо другой метод. Вам также нужно решить, как вы будете сканировать эти символы.

В общем, ответ на ваш вопрос заключается в том, что их можно преобразовать, но ваша ситуация и особенности определят, стоит ли это делать и как вы этого добиваетесь. Это не то, что можно написать для вас.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]