Форум » GUI » Word unicode-символ » Ответить

Word unicode-символ

Новичок: Вопрос, какая функция (готовая) выводит Unicode-символ на MS Word или надо ручками рисовать? как представить на Hb двухбайтный символ или более...

Ответов - 31, стр: 1 2 All

Pasha: Харбор в любом случая передает в word строку в unicode Чтобы unicode был в самом харборе, и харбор не делал бы перекорировку при присвоении <Range>:Value := cValue надо в программе установить кодовую страницу utf8, и строку формировать уже в этой кодировке: cValue := Chr(n1)+Chr(n2)+... или cValue := I2Bin(nn) + ... где nn - код двухбайтного символа

Новичок: *PRIVAT*

SergKis: Pasha пишет надо в программе установить кодовую страницу utf8, и строку формировать уже в этой кодировке cValue := hb_StrToUtf8( cValue [, cCodePage] ) Разве нельзя воспользоваться вторым параметром ?


SergKis: PS не меняя страницу на utf8 cValue := hb_StrToUtf8( cValue ) должно быть достаточно для понимания wordом или нет

Новичок: Word понимает CP 1251 без Hb_StrToUTF8(cValue), задача была: Программно воткнуть текст с содержанием UNICODE символа. К примеру, текст "Это символ Ө с кодом 04Е8" text:="Это символ "+cSIMVOL+" с кодом 04Е8" нужно было переменную cSIMVOL как-то представить (типа CharW() ), чтобы при вставке в Word корректно отобразился символ "Ө" или весь текст ) в том то и дело, "стандартный текст" могу просто набрать, а "специфические символы" нужно указать код, к примеру U+04E8, но как ? реализуется в Hb ? к примеру даже пробовал hb_strtoutf8(i2bin(1186)) получил на Word Сћ

SergKis: Новичок пишет Программно воткнуть текст с содержанием UNICODE символа. hb сам переводит utf8 -> unicode, задача стоит символы ru1251 -> utf8 и потом какие то символы utf8 заменить на др. символы utf8 (нац. кодировки). Правильно понимаю ? Если да, то вроде, достаточно массив с соответствием utf8 значений aSim := {{utf8(1251), utf8(нац. символ), ... } и по идее cValue := hb_StrToUtf8(cValue) AEval(aSim, {|as|, cValue := StrTran(cValue, as[1], as[2]) }) или с ф-ями поиска hb_Utf8At(), hb_Utf8Substr() и т.д. вопрос, по мне, надо ставить страницу utf8 для работы с вордом или hb\word поймет правильно utf8 строку

Pasha: 04Е8 - это символ из киргизского алфавита. Есть несколько вариантов. Можно добавить в харбор 8-ми битную кодировку с привязкой ее к unicode. Тогда строковую информацию в БД и текстах программ можно будет хранить в однобайтном формате, а харбор сам будет перекодировать где нужно строки в unicode, в том числе для word. Но для этого надо определиться, какая именно 8-ми битная кодировка используется. Варианты я давал. При этом добавление языкового модуля даст такие приятные фичи, как правильная работа функций lower/upper. Если не использовать 8-ми битную кодировку, то строки надо хранить в utf8 или utf16. Для этого в программе надо установить кодовую страницу по умолчанию UTF8EX или UTF16LE. Харбор опять таки автоматически будет перекодировать при необходимости строки в unicode Для текстов программ utf8 более-менее подходит, тот же редактор far это делать умеет. Но при этом не будет языкового модуля.

Новичок: Имеется текст "Это символ Ө с кодом 04Е8" CP 1251, и только символ "Ө" код U+04E8 приходится вставлять текст последовательно: - сперва часть слова "Это символ " // без преобразования кодировки (1251) - далее вставить символ "Ө" // oText:Range:InsertSymbol(1186,"Times New Roman",.T.) (UniCode) - и в конце часть слова " с кодом 04Е8" // без преобразования кодировки (1251) в таком порядке корректно отображается текст.

Новичок: Pasha, я о чем и спрашивал в начале (UTF8), 8-битная кодировка с привязкой UTF8. Можно на примере киргизского, у них только 3 дополнительные буквы к алфавиту (6 символов).

Новичок: 6 символов - Ө - U+04E8 ө - U+04E9 Ң - U+04A2 ң - U+04A3 Ү - U+04AE ү - U+04AF Порядок следования как в кириллице, после символов ...НҢ..ОӨ..УҮ... - для индексации

Pasha: Так какая 8-ми битная кодировка у вас используется ? Windows Cyrillic Asian ParaType PT-154 ? В ней символ Ө имеет десятичный код 164, а ө - 181 остальные 2 символа надо посмотреть Ң - U+04A2 140 ң - U+04A3 156 Ү - U+04AE 135 ү - U+04AF 137 Эта кодировка имеет распространение, или какая-то другая ? Может быть есть утвержденный стандарт ?

Новичок: А черт его знает... надо наверно взять основу 1251 (стандартной кириллицы), для начала после символа "Я" - продолжить эти 6 символов, в дальнейшем можно определится более точные месторасположения символов На примере киргизского создать работоспособную вещь, в дальнейшем можно и подключить не только среднеазиатские языки (на основе кириллицы) к примеру башкирский имеет те же символы

SergKis: Новичок пишет для начала после символа "Я" - продолжить эти 6 символов, в дальнейшем можно определится более точные месторасположения символов погуглил киргизкий алфавит, получил[pre2] #define HB_CP_UPPER "АБВГДЕЁЖЗИЙКЛМНҢОӨПРСТУҮФХЦЧШЩЪЫЬЭЮЯ" #define HB_CP_LOWER "абвгдеёжзийклмнңоөпрстуүфхцчшщъыьэюя" #define HB_CP_UPPER "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ" #define HB_CP_LOWER "абвгдежзийклмнопрстуфхцчшщъыьэюя" [/pre2] нижние строки ru1251

Новичок: я имел ввиду расположение в кодовой системе 8-бит

SergKis: Новичок пишет я имел ввиду расположение в кодовой системе 8-бит символы задаются в hb в utf8 кодировке без BOM, см. src\codepage\l_??.ch нужны еще названия месяцев и дней недели в utf8, об этом говорили, когда Pasha делал LV 1257 кодировку

Новичок: да пока можно поставить русские наименования, проблем сделать отдельные функции не проблема(определения месяцев и дней недели), если будет иметь место возможность использования национальных символов. *кстати, много используется и двух- и трех- сокращенные наименования месяцев и дней недели (типа, Янв, Фев,... ПНД, ВТР, ... ПН, ВТ, ...)

SergKis: Опять погуглил [pre2] Год у них был представлен оригинальным 12-месячным циклом: жалган куран — февраль, чын куран — март, бугу — апрель, кулжа — май, теке — июнь, баш оона — июль, аяк оона — август, тогуздун айы — сентябрь, жетинин айы — октябрь, бештин айы — ноябрь, учтун айы — декабрь и бирдин айы — январь. язык понедельник вторник среда четверг пятница суббота воскресенье Киргизский дүйшөмбү шейшемби шаршемби бейшемби жума ишемби жекшемби [/pre2]

SergKis: PS Осталось определиться. Pasha пишет Windows Cyrillic Asian ParaType PT-154 ? клавиатура как ?

Новичок: *да и вообще, на дворе 21 век, век "знакомест", пора бы уже объединенные символы недель, месяцев в виде знаков. Знаки - международный понятный язык, к примеру дорожные знаки. Сделать к примеру, порядковый номер недели в круглых рамках, выходные в инверсии к примеру. Дни недели ① ② ③ ④ ⑤ ➏ ➐ Месяцы Ⅰ, Ⅱ, Ⅲ, Ⅳ, Ⅴ, Ⅵ, Ⅶ, Ⅷ, Ⅸ, Ⅹ, Ⅺ, Ⅻ или ⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ ⑾ ⑿ ну короче тип того *Ну вообщем понимаете, без UNICODE в дальнейшем не обойтись (не только национальные языки!)

Новичок: Клава, посмотрел, для UTF8 используется для киргизского - правый Alt Gr + (Уу Нн Оо) соответственно



полная версия страницы