О юникоде, шрифтах и иероглифах в разных версиях

Russian main discussion
  • Author
  • Message
Offline
Posts: 4
Joined: Thu Oct 05, 2006 9:51 pm

Post by VanGo »

Instructor wrote:VanGo
Ответ там же :)
:D :D :D Работает :!: :wink:

Offline
Posts: 12
Joined: Wed Sep 13, 2006 12:59 pm

Post by Natrio »

Как известно, AkelPad умеет определять кодировку открываемого файла (обычно правильно).
А еще AkelPad запоминает последнюю кодировку для каждого файла и в дальнейшем уже не использует автоопределение.
И это проблема.
А если файл был перекодирован (или вообще заменен) без участия AkelPad ?

Допустим, был файл в UTF-8, а стал в ASCII-1251.
И вот AkelPad долго и упорно открывает этот файл (размером, скажем, в 1МБ), в UTF-8. И только когда наконец откроет, и покажет его в виде иероглифов, только тогда можно переключить кодировку в ASCII-1251.

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

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Natrio
Настройки -> Параметры... -> Количество файлов = 0

Offline
Posts: 12
Joined: Wed Sep 13, 2006 12:59 pm

Post by Natrio »

Instructor
Настройки -> Параметры... -> Количество файлов = 0
Да, можно и так, но я хотел, чтобы и волки целы (кодировка запоминалась вместе со списком файлов), и овцы сыты (определялось заново, если файл изменился)...

Ну, если это больше никому не надо, обойдусь "костылем", в минимальном варианте. Если нужно принудительное автоопределение, запускается скрипт s0m, который находит открываемый файл в списке Recent\name# и обнуляет его кодировку cp# , а потом уже запускает AkelPad.

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

Scrapmetay wrote:сделайте чтобы если установлен какой-то шрифт, а каких-то нужных символов там нет, могли не рисоваться квадраты, а была подстановка из других шрифтов, выбранных пользователем.
Феерично

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

opk44
Почему? :) Хотя, наверное, да, лучше сразу пользовать Arial Unicode, например, но он весит почти в два раза больше, чем моя сборка без Aspell, метров 20-22 :)) И не моноширный, но с 4.9.1 это решаемо вроде.
Scrapmetay wrote:вкладка рьяно выпрыгивает если нажать просто на “пустое место”.
В упомянутом фф это настраивается и можно жать куда угодно с почти какими угодно последствиями.
Scrapmetay wrote:Да и я это приписал как бы к предложению другого человека.
Можно писать в ЛС, чтобы никто не влез :)

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

Skif_off wrote:opk44
Почему? :)
Потому что это в точности как в телерекламе Ингавирина: "Ингавирин сканирует клетки и выборочно лечит зараженные" (вот же "клеточный сканер" нашли, лапшевесы!). Так и тут предлагается сканировать квадратики и выборочно их "лечить".

Offline
Posts: 71
Joined: Tue Nov 11, 2014 12:21 am

Post by Scrapmetay »

Нет, всё не так. Эта функция “автоподстановка шрифтов” даже есть в некоторых программах, вроде Word-а. (Токо там она должна выбираться вручную, поэтому я ей не пользовался. Это слишком накладно.) – Пользователь может для нормального редактирования в редакторе выбрать какой-то шрифт, и открывать разные файлы. Ну не выбирать ведь на кучу файлов кучу разных шрифтов. Да и даже соотнесение конкретных файлов с конкретным шрифтом – приводит кучу побочных эффектов: там и начертание и ширинность и размер, и одни символы отобразились, другие отпали.

А я предлагаю к главному шрифту, которым всё установлено отображать, выбрать запасные: это пользователь делал бы для каждого конкретного символа. То есть нашёл в документе квадраты, выделил их, открыл окно [автоподстановка], там уже выделено в таблице Уникода какие это символы. И пролистал, какие у него есть в системе шрифты, чтоб эти символы там точно были. Назначил. Теперь если в “нормальном” шрифте любом документе у него будут квадраты, программа отобразит эти символы запасным шрифтом. Конечно, будет отличаться начертание, но только для необходимых символов; да и если наверно эти символы будут редкие, они и так могут выбиваться начертательно из текста. Другой вид не очень их исказит.

Хоть Arial Unicode MS и имеет больше всего символов (как бы), и там можно наткнуться на квадрат, который в каком-то другом да есть.

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Scrapmetay wrote:Эта функция “автоподстановка шрифтов” даже есть в некоторых программах, вроде Word-а. (Токо там она должна выбираться вручную, поэтому я ей не пользовался.
Дальше можно не читать, на самом деле.
Scrapmetay wrote:Хоть Arial Unicode MS и имеет больше всего символов (как бы),
Не как бы. Из приличных его 38917 символов более чем достаточно. Всё, что мне в своё время удалось нагуглить под 50 тыс. символов было откровенно убогим.
Scrapmetay wrote:и там можно наткнуться на квадрат, который в каком-то другом да есть.
А такие файлы пусть остаются на совести автора этого самого файла. Определённо, это что-то специфическое, для чего есть и свои специфические инструменты. И если вы забыли: AkelPad пока/ещё не поддерживает письмо справа налево.

Offline
Posts: 71
Joined: Tue Nov 11, 2014 12:21 am

Post by Scrapmetay »

Можно плохую мысль пропустить, а дальше читать. :]
Skif_off wrote: 38917 символов более чем достаточно.
Вот теперь и приходится пользоваться только этим шрифтом. Я уж и забыл, что шрифты вообще-то должны выбираться по красивости начертания. А не чтобы поддержать какой-то, или другой символ. А так бы можно было выбирать шрифты для основных блоков символов во всех текстах определённого пользователя (допустим кириллица + латиница), а запасные – заделывали бы дыры. Или даже не только дыры, а отображали блоки, которые ему просто нужно отобразить (иероглифы), а уж в начертании их он не разбирается.

А про A. U. M. S.: он к примеру не имеет все малые заглавные буквы, типа как тут:
ᴀʙᴄᴅᴇꜰɢʜɪᴊᴋʟᴍɴᴏᴘ-ʀꜱᴛᴜᴠᴡ-ʏᴢ
в нём эта строка идёт через большую часть квадратов. А тут, в редакторе форума с шрифтом по умолчанию, все отображаются.

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Scrapmetay
А какие символы вам встречаются, если не секрет? Хотя бы базовые 0000-FFFF (немногим более 65 тыс.)? Нет ли альтернативы? Что-то было на 50 с копейками тысяч, но не уверен, что TTF.
Кстати, с помощью плагина Fonts можно

Code: Select all

 "Courier New" Font("Courier New", 0, 0)
 "Liberation Mono" Font("Liberation Mono", 0, 0)
 "Lucida Console" Font("Lucida Console", 0, 0)


Добавлено:
Таки нашёл: Universalia и UniversaliaPlus, поддержка Unicode 7.00. OpenType, с плагином Fonts работает, вид приличный, ваш пример показывает.

Из TrueType был Code2000, но он старенький (Unicode 5.1). Arial Unicode MS - Unicode 2.1


Offline
Posts: 71
Joined: Tue Nov 11, 2014 12:21 am

Post by Scrapmetay »

Ну, кроме этих малых больших букв были какие-то редкие иероглифы, может они и в Китае щас не используются. Скорее всего они были из первых двух байт, потому что большая вероятность, что я на них натыкался лазя по таблице Уникода Windows-а XP, которая вроде не поддерживает остальные символы. Ну а может с сайтов что-то нашёл, точно не помню. Тут ведь прикол такой, что я пользуюсь текстом воще так, что если найду символ, и он круто выглядит, обрадуюсь и буду его везде пихать. Для окраски текста. Поэтому “на совести разработчика” мне это не очень подходит.

Круто конечно, позырю эти шрифты. Я уже находил эту статью, но наверно этих по ≽ 50000 там ещё не было.

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


Но идея-то которую я предложил, другая. Всё равно имеет смысл подставлять шрифт, когда пользователю начертание нужно разное. К примеру Creepy или Gothic. Для большинства текста. А так какой шрифт ни найди, придётся про остальные шрифты все забыть. (Или на каждом файле нажимать кнопку, не считая того что и этих вариантов может быть слишком много.)

Offline
Posts: 294
Joined: Tue Jul 27, 2010 11:18 pm

Post by Serge Yolkin »

Scrapmetay
Не считаю себя программистом, но когда-то сталкивался с такой задачкой, так вот, гарантированно отличить "прямоугольник" от символа - задачка не тривиальная. Скорее всего, прийдется сканировать файл шрифта при каждом запуске программы (и при изменении настроек). Такое логичнее в плагин выносить: кому надо - доустановят...

Offline
Posts: 71
Joined: Tue Nov 11, 2014 12:21 am

Post by Scrapmetay »

А может тогда при каждом обнаружении в системе новых шрифтов? Или при несовпадении суммы файла (шрифта). А дальше хранить эту информацию.

(Это если имеется в виду в самих шрифтах не все символы метятся как непрорисованые.)

Доп...:
О, ну да, ясно, это тоже может привести к сканированию, если журнала таких изменений в системе нет. Ну тогда по явной команде пользователя, а не всегда. Если он увидел, что назначенные символы опять возвелись в квадрат.
Post Reply