Всем привет. На сервере под управлением ubuntu server развернул проект по парсингу разноязычных текстов. Есть там этап разбития слов на символы и занесения символов в MySQL.
Так как текст попадается разноязычный то получается следующее. Слова на английском и русском (установленные в ОС локали) разбиваются нормально и в mysql я вижу символы из которых они состоят. А например буквы из французского или какой-нибудь японского вставляются в MySQL пустыми полями. То есть ascii-код символа можно получить, а вот отобразить его - нельзя.
Реально ли как-то установить в ОС все возможные локали дабы со всеми языками сразу избежать этих проблем?
Установка всех возможных локалей в ОС
Модераторы: SLEDopit, Модераторы разделов
-
- Модератор
- Сообщения: 21251
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Установка всех возможных локалей в ОС
sudo dpkg-reconfigure locales
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 1147
- Статус: Slacker!
- ОС: Slackware64-current
Re: Установка всех возможных локалей в ОС
Slackware64-current/Xfce/Xiaomi Mi Notebook Pro 15.6 | Arch Linux/Xfce/Lenovo G580
-------------
Registered Linux User #557010
-------------
Registered Linux User #557010
-
- Модератор
- Сообщения: 21251
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Установка всех возможных локалей в ОС
WhiteTiger писал(а): ↑09.07.2016 17:29А например буквы из французского или какой-нибудь японского вставляются в MySQL пустыми полями. То есть ascii-код символа можно получить, а вот отобразить его - нельзя.
Вот этот момент не понял, поясните.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 3684
- ОС: calculate linux, debian, ubuntu
Re: Установка всех возможных локалей в ОС
попробовать утф32 поставить. Если получится - так я также на мускул с постгреса сбегу.
-
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: Установка всех возможных локалей в ОС
Если код символа (только это уже не ASCII-код, Unicode) можно получить, но не видно символа, то шрифт не содержит данные символы. Выберите другой шрифт.
Спасибо сказали:
-
- Сообщения: 14
Re: Установка всех возможных локалей в ОС
Вот что искал:
Допускаю что не под тем углом вижу проблему. Как мне кажется, в консоли, редакторах и любом софте ОС не будут отображаться например буквы японского алфавита если не установлена соотв. локаль (а к ней - шрифт). Вероятно ошибаюсь, но попробовал решить вот так. В процессе всё равно пришёл к другому решению - хранить HEX-коды символов.
array=($(cat /usr/share/i18n/SUPPORTED))
for i in "${array[@]}"; do echo locale-gen $i; done;
dpkg-reconfigure locales
Допускаю что не под тем углом вижу проблему. Как мне кажется, в консоли, редакторах и любом софте ОС не будут отображаться например буквы японского алфавита если не установлена соотв. локаль (а к ней - шрифт). Вероятно ошибаюсь, но попробовал решить вот так. В процессе всё равно пришёл к другому решению - хранить HEX-коды символов.
-
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: Установка всех возможных локалей в ОС
WhiteTiger писал(а): ↑10.07.2016 12:26Допускаю что не под тем углом вижу проблему. Как мне кажется, в консоли, редакторах и любом софте ОС не будут отображаться например буквы японского алфавита если не установлена соотв. локаль (а к ней - шрифт). Вероятно ошибаюсь, но попробовал решить вот так. В процессе всё равно пришёл к другому решению - хранить HEX-коды символов.
Локаль тут не поможет. Нужны шрифты с поддержкой соответствующих символов.
Если же помогает хранить HEX-коды символов, то проблема не в шрифте, а в том, как хрантяся данные, значит коды символов всё же терялись. Это нужно смотреть в свойствах БД/таблицы/поля — какая кодировка используется для хранения. Нужно выбрать что-то вроде utf8/utf16/utf32.
Спасибо сказали:
-
- Сообщения: 1139
- ОС: Fedora
Re: Установка всех возможных локалей в ОС
У MySQL, как у всякой SQL DB собственные механизмы локализации, имеющее мало общего с системными. У каждой таблицы (а по-моему даже у каждой символьной колонки) своя кодировка, у соединения с БД - тоже своя. Их обе надо аккуратно выставлять.