Конвертер Unicode в символы в PHP

Мне нужно преобразовать юникод в символ в PHP. Я использую базу данных MySQL для хранения текста Текст в формате Unicode с сопоставлением utf8-general-ci. Когда я извлекаю эти данные и отображаю, отображаются некоторые специальные символы: например, "मिनिसà¥à¤•à¤°à¥à¤Ÿà¤®à¤¾ करà¥à¤•à¥‡ नजर" для текста "मिनिस्कर्टमा कर्के नजर". Это непальский шрифт в формате юникода. Мне нужно это в символьном или ascii формате в PHP. Я пробовал кодировать и декодировать utf8, но ни один из них не работал (отображает знаки вопроса???? Â¥Âà ¤•à ¤°à ¥Âà ¤Ÿà ¤®à ¤¾ à ¤•à ¤°à ¥Âà ¤•à ¥‡ à ¤¨à ¤œà ¤°" при кодировании). Итак, как я могу получить значение ascii или символ или значение unicode для каждого символа unicode из базы данных mysql в PHP???


person Sandesh Sharma    schedule 06.09.2013    source источник
comment
вы пробовали html_entity_decode(), если нет, то попробуйте   -  person Girish Kumar Sinha    schedule 06.09.2013


Ответы (4)


Измените сопоставление на utf_bin и в заголовке ваших страниц <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">. Надеюсь, что это работает.

person Nil'z    schedule 06.09.2013
comment
Это отображает मिनिस्कर्टमा कर्के नजर, который является фактическим текстом в базе данных. Но мне это не нужно, мне нужно его эквивалентное значение ascii или unicode, чтобы я мог преобразовать этот текст в другой шрифт. - person Sandesh Sharma; 06.09.2013
comment
Другой шрифт или язык? @БарселонаЦандеш - person Nil'z; 06.09.2013
comment
На самом деле я собираюсь сопоставить этот текущий шрифт базы данных с другим шрифтом, который также является непальским шрифтом. Для этого мне нужен код ascii или символ, который можно преобразовать в другой шрифт. Или язык тоже. - person Sandesh Sharma; 06.09.2013
comment
Для любого символа Девенагари нет значения ASCII. Если у вас есть «визуальный шрифт» (то есть такой, в котором каждый символ, например a, отображается на семантически не связанный глиф), вам понадобятся не только таблицы сопоставления символов между реальным кодом символа и глифами шрифта, но и сложная обработка макета текста для выяснить, какой глиф соответствует какой последовательности символов: например, मि — это один составной глиф, но два символа, ma+i. Гораздо лучше для здравомыслия и семантики использовать стандартные шрифты Unicode везде, где это возможно. - person bobince; 06.09.2013

Ладно, я понял. Я использовал эту php-библиотеку и использовал функцию utf8_chr_to_unicode_style для преобразования каждого символа Юникода в код. Я преобразовал все коды в требуемый код шрифта (код шрифта preeti nepali). Это все :).

person Sandesh Sharma    schedule 09.09.2013
comment
Попробуйте utf8_chr_to_hex из той же библиотеки. Это лучшая и улучшенная функция в переносимом utf8 1.3, и если вы хотите преобразовать в целое число, вы должны использовать utf8_ord(). - person Hamid Sarfraz; 24.09.2013

Попробуйте функцию icon.

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

person Kelu Thatsall    schedule 06.09.2013

У меня проблема с кодировкой utf-8. Я был во всем Интернете (ну, не полностью), но уже довольно давно, и лучшим советом было и остается установить кодировку заголовка на «UTF-8».

Тем не менее, я разрабатывал свое веб-приложение локально на своем компьютере, используя xampp (а иногда и wamp, чтобы получить различие между ними, когда дело дошло до отладки моего кода). Все работало отлично =). Но как только я загрузил его в сеть, результат был не таким уж крутым (ошибки, которые вы получили бы, если бы установили для заголовков другую кодировку, например «iso-8859-1»). Каждый заголовок в моем коде имеет UTF-8 в качестве кодировки по умолчанию, но у меня все еще есть те же «иероглифические штучки». Затем вы, ребята, дали мне понять, что проблема не в моем коде, а в php.ini, на котором он работал. Оказывается, на моей локальной машине работал php 5.5, а cpanel, куда я загрузил свое веб-приложение, работал на родном php 5.3 . Что ж, когда я изменил версию php, которую моя cpanel установила по умолчанию, с Native PHP 5.3 на PHP 5.5, поверьте мне, ребята =) это сработало как шарм, как если бы я был прямо там, на локальном хосте машины.

ПРИМЕЧАНИЕ. Пожалуйста, если у вас возникла та же проблема, что и у меня, просто убедитесь, что у вас версия PHP 5.5. Я публикую это, потому что чувствую вас, ребята. Ваше здоровье!

person CodeZero    schedule 25.06.2014