В моем поле базы данных mysql часть текста выглядит так:
काठमाडौà¤, २४ माघ / संविधानसà¤à¤¾ सदसà¥à¤¯à¤•à¥‹ रिकà¥à¤¤ ६ सिटका लागि आगामी चैत २८ गते हà¥à¤¨à¥‡
Но когда он выводится в браузере, он выглядит отлично. Являются ли эти закодированные тексты или?
Я не могу дать вам подробностей, но в основном текст преобразуется в коды UTF. Это 16-битные (два байта) значения. Каждая отдельная буква или символ на любом языке сохраняется как уникальное значение. Когда вы смотрите на необработанные данные в базе данных, вы видите 8-битные (однобайтовые) ASCII-представления двух половин реального значения. Следовательно, что-то вроде двух символов «Ø *» на самом деле является одним арабским символом. Когда MySQL выводит информацию, он преобразуется двухбайтовыми значениями обратно в соответствующие символы.
То же самое происходит с любым другим неевропейским языком. 8 бит ASCII имеет все символы, основанные на латинском, греческом и т. Д. (Многие из неанглийских букв находятся в символах высокого порядка, значения между 0 и 127 в основном английски, а значения от 128 до 255 включают в себя неанглийские символы и буквы ). Это отражает истоки США ASCII. Китайский, японский, арабский и многие другие языки имеют свой текст с 16-битными значениями от 256 до 65384.
Итак – вы должны найти информацию о наборах символов UTF и о том, как они отображаются.
Обратите внимание, что есть UTF-8 и UTF-16. Я понимаю, что UTF-8 гарантирует, что значения из 0-255 в 16-битном формате совпадают с теми же значениями в 8-битном наборе ASCII.