evpu
12-06-2015, 15:30
Всем добрый день!
Снова о своем "любительском проекте". Созданный мной ранее на РНР движок базы сохранял кириллицу в БД в UTF8. Собственно, если бы даже и не так, пришлось бы в ряде процедур все равно конвертировать в UTF8. И вот теперь, делаю алгоритмы ядра на С под Debian, столкнулся с тем, что нужно из таблицы вычитывать данные с "широкими" символами, их обрабатывать, и загонять назад, так же в "широких" символах.
С типом wchar_t разобрался вроде...
Подскажите пожалуйста правильный синтаксис запросов, (я так полагаю, mysql_real_query()?) для извлечения в широкосимвольный массив! Только за эту задачу взялся, "нахрапом" взять не удалось - компилятор выдает кучу мата от mysql.h...
И по поводу функции swprintf(). Там второй аргумент - "count - максимальное число символов, которое сохраняется в версии Unicode этой функции." Порывшись в описании UTF8 нахожу информацию:
wiki:
"Алгоритм UTF-8 технически позволяет записывать код любой длины. Но для эффективной и надёжной работы алгоритма необходимо ограничение длины кода. Действующий стандарт Unicode 6.х предполагает использование кода до 21-го бита, то есть до четырех байт в UTF-8.".
Я так полагаю, это означает, что аргументу count следует присвоить значение "4"?
Снова о своем "любительском проекте". Созданный мной ранее на РНР движок базы сохранял кириллицу в БД в UTF8. Собственно, если бы даже и не так, пришлось бы в ряде процедур все равно конвертировать в UTF8. И вот теперь, делаю алгоритмы ядра на С под Debian, столкнулся с тем, что нужно из таблицы вычитывать данные с "широкими" символами, их обрабатывать, и загонять назад, так же в "широких" символах.
С типом wchar_t разобрался вроде...
Подскажите пожалуйста правильный синтаксис запросов, (я так полагаю, mysql_real_query()?) для извлечения в широкосимвольный массив! Только за эту задачу взялся, "нахрапом" взять не удалось - компилятор выдает кучу мата от mysql.h...
И по поводу функции swprintf(). Там второй аргумент - "count - максимальное число символов, которое сохраняется в версии Unicode этой функции." Порывшись в описании UTF8 нахожу информацию:
wiki:
"Алгоритм UTF-8 технически позволяет записывать код любой длины. Но для эффективной и надёжной работы алгоритма необходимо ограничение длины кода. Действующий стандарт Unicode 6.х предполагает использование кода до 21-го бита, то есть до четырех байт в UTF-8.".
Я так полагаю, это означает, что аргументу count следует присвоить значение "4"?