Android, mysql и рендеринг нелатинских символов, а также латиницы? - PullRequest
0 голосов
/ 22 сентября 2010

Являются ли эти квадраты изображением китайских иероглифов, превращаемых в юникод?

РЕДАКТИРОВАТЬ: [Здесь я ввел квадраты с цифрами внутри них в пост, но они не отображались]

Я бы хотел превратить это обратно в исходные символы при отображении в Android (или разрешить mysql просто сохранять их как китайские символы, а не в Unicode ???)

BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"), 8);

При отладке показывает значение строки как "\ U001a \ u001a \ u001a \ u001a"

 byte[] bytes = chinesestringfromdatabase.getBytes();

превращает его в «[26, 26, 26, 26]»

String fresh = new String(bytes, "UTF-8");

и затем это превращает его обратно в РЕДАКТИРОВАТЬ: [Здесь я ввел квадраты с цифрами внутри них в пост, но они не визуализировали]

Мой телефон может отображать текст на китайском языке.

MySQL charset: UTF-8 Unicode (utf8)

При наборе моего вопроса я понимаю, что, возможно, у меня неправильная кодировка все вместе. Я заблудился относительно того, будет ли моя проблема связана с кодированием, или это просто связано с настройкой, или если php не может обработать набор символов ??

Я хотел бы хранить и отображать несколько языковых наборов символов, которые могут содержать смесь языков.

Ответы [ 2 ]

0 голосов
/ 22 сентября 2010

Какие были цифры в коробках?Я предполагаю, что они были 001A?Например?

(SO обычно отфильтровывает их, поскольку они являются управляющими символами ASCII, обычно невидимыми в других браузерах.)

При отладке он показывает значение строки как "\ u001a\ u001a \ u001a \ u001a "

Очевидно, что там нет китайского или какого-либо текста, который можно было бы восстановить.Любое информационное содержимое в исходной строке было потеряно.

Хотя я согласен с тем, что вам нужно использовать UTF-8 повсеместно (что для PHP означает обслуживание страницы формы с помощью тега UTF-8 <meta>, используяmysql_set_charset('utf8') и создание таблиц MySQL с сопоставлениями UTF-8), я думаю, у вас должна быть более серьезная проблема повреждения, чем просто кодировка, совместимая с UTF-8-vs-other-ASCII, если вы каким-то образом получаете только идентичные управляющие символывместо текстовой строки.

0 голосов
/ 22 сентября 2010

Здесь я ввел квадраты с цифрами внутри них в пост, но они не рендерились

С "квадратами с цифрами внутри", вы имеете в видутак же, как те, которые вы также видите для некоторых экзотических языков где-то внизу главной страницы Википедии , просматривая браузер Firefox ?(во всех других браузерах - MSIE, Chrome, Safari и т. д. - вы бы видели только пустые квадраты, ничего не говорящие).

Если true, то это просто означает, что для этих символов в символах нет доступных глифов.1013 * шрифт , который веб-браузер / просмотрщик получил указание использовать.

Я хотел бы хранить и отображать несколько языковых наборов символов, которые могут содержать смесь языков.

Используйте UTF-8 полностью.Только помните, что MySQL поддерживает только панель Unicode BMP (максимум 3 байта на символ), но не другие панели (4 байта на символ).Таким образом, панель SMP (которая содержит «специальные» символы CJK) выходит за пределы диапазона для MySQL.

Ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...