:: Не фоксом единым
Казахский язык Unicode->Ansi
Vedmak

Сообщений: 5967
Откуда: CiTY
Дата регистрации: 30.10.2003
Есть дельфийское приложение (компилятор достаточно старый и не юникод) выполняющие импорт данных из БД Oracle ( Unicode ) и вставку в БД Pervasive (non-Unicode Win1251). Естественно казахские национальные символы слетают и заменяются на "?", а русские остаются без потерь.

Вопрос, какими средствами выполнить перекодировку? Есть готовые функции или другие подключаемые средства ?

P.S. Обратная перекодировка тоже нужна.



Исправлено 1 раз(а). Последнее : Vedmak, 15.10.15 17:03
Ratings: 0 negative/0 positive
Re: Казахский язык Unicode->Ansi
Влад Колосов

Сообщений: 22664
Откуда: Ростов-на-Дону
Дата регистрации: 05.05.2005
1251 - это же русская,а не казахская. Т.е. никак, если сервер не поддерживает других collation.


------------------
Совершенство - это не тогда, когда нельзя
ничего прибавить, а тогда, когда нечего убавить.
Ratings: 0 negative/0 positive
Re: Казахский язык Unicode->Ansi
Vedmak

Сообщений: 5967
Откуда: CiTY
Дата регистрации: 30.10.2003
Не снимая основного вопроса!

Какой "collation" нужен для казахского языка ?
Ratings: 0 negative/0 positive
Re: Казахский язык Unicode->Ansi
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
В кодировке 1251 нету казахских символов. В принципе нету. Невозможно конвертировать юникод (где казахские буквы, конечно же, есть) в 1251 или обратно. Для казахского языка (в варианте кириллицы) существует своя кодовая страница (т.е. 8-битная кодировка) - 1048. Она НЕ является штатной для винды, и, как я понимаю, ставится только совместно с пакетом локализации (НЕ бесплатным) KazWin. Чтобы потом работать с этой кодировкой, ещё и собственно среды программирования или соответствующие сервера БД должны поддерживать её. Скажем фокс её не поддерживает напрямую.
collation хоть и связан с языками, но это НЕ кодировка, поэтому прежде чем задумываться о collation (т.е. о последовательности сортировки "кодов" представляющих разные буковки) необходимо обеспечить поддержку соответствующей кодировки.
Естественно, всегда можно сделать через Ж. Например использовать исковерканные шрифты, где вместо неиспользуемых символов "русской" кодировки 1251 нарисовать казахские буквы. Конечно же и в юникоде это будут тоже "русские" буквы, отображаемые "как надо" исключительно за счёт исковерканного шрифта. Лично я бы на такое, конечно же, не подписывался ни за какие "бонусы".

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


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Казахский язык Unicode->Ansi
Vedmak

Сообщений: 5967
Откуда: CiTY
Дата регистрации: 30.10.2003
О VFP речь не идет совсем. В первом посте я указал среду разработки, не-юникод компилятор Delphi.

Заранее прошу извинить, но личная оценка сложности задачи к теме не относится. Прошу совета знающих о том как вопрос решить.

Как говорится в известном фильме (вольное цитирование):
[Мне не интересно почему - "нет". Я хочу узнать что вы сделали, чтобы было "да"!]

Я позволил себе указать ссылку на эту ветку обсуждения в рабочем форуме, дабы разработчики смогли почерпнуть полезное для решения рабочей задачи.
Ratings: 0 negative/0 positive
Re: Казахский язык Unicode->Ansi
Влад Колосов

Сообщений: 22664
Откуда: Ростов-на-Дону
Дата регистрации: 05.05.2005
Какой collation затрудняюсь сказать, я бы попробовал какой-нибудь из LATIN_GENERAL.


------------------
Совершенство - это не тогда, когда нельзя
ничего прибавить, а тогда, когда нечего убавить.
Ratings: 0 negative/0 positive
Re: Казахский язык Unicode->Ansi
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Vedmak
О VFP речь не идет совсем.
VFP просто похож по "возникающим проблемам" на этот самый неюникодный дельфи.
Vedmak
Прошу совета знающих о том как вопрос решить.
Одно из двух
1) Использовать юникод на всех этапах обработки информации (в дельфи это приведёт к тому что надо будет работать не со строками а с массивами байт, а на неюникодном сервере соответственно с бинарными типами a la blob - конечно если они в этом первасиве имеются в принципе).
2) Использовать кодовую страницу 1048 - в неюникодной программе и на неюникодном сервере (опять же если и то и другое ПОЗВОЛЯЕТ использовать эту codepage). При этом эта CP НЕ является штатной для винды (хотя она и стандартизована соответствующими организациями), и её придётся для начала установить из платного пакета KazWin.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Казахский язык Unicode->Ansi
Vedmak

Сообщений: 5967
Откуда: CiTY
Дата регистрации: 30.10.2003
Благо! Будем пробовать.



Исправлено 1 раз(а). Последнее : Vedmak, 16.10.15 23:55
Ratings: 0 negative/0 positive
Re: Казахский язык Unicode->Ansi
dimuhametov

Сообщений: 1562
Откуда: Костанай
Дата регистрации: 01.11.2008
www.sci.kz


------------------
Незнание делает жизнь такой интересной.
Ratings: 0 negative/0 positive
Re: Казахский язык Unicode->Ansi
Vedmak

Сообщений: 5967
Откуда: CiTY
Дата регистрации: 30.10.2003
Благо! Эту статью уже "нагуглили".
Ratings: 0 negative/0 positive
Re: Казахский язык Unicode->Ansi
AndreyGen
Автор

Сообщений: 2
Дата регистрации: 26.11.2021
Здравствуйте.
Подскажите какую кодировку нужно использовать для казахского языка.
Мне нужно писать прогу на казахском и не знаю на чём базироваться.

В википедии есть:
Официальная кодировка KZ-1048 (казахский стандарт)
Данная кодировка утверждена стандартом СТ РК 1048—2002 и зарегистрирована в IANA как KZ-1048

На эту кодировку можно ориентироваться ?
Это кодировка сделана на базе RU1251

Читал что казахи перешли на латиницу ?
Как это выглядит ?

Или продолжают работать на кирилице ?



Исправлено 1 раз(а). Последнее : AndreyGen, 26.11.21 20:39
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 9 (Гостей: 9)

© 2000-2024 Fox Club 
Яндекс.Метрика