Python. Аргументы запуска (Или даже так: С. mbstowcs())

Модератор: Модераторы разделов

Аватара пользователя
vonabarak
Сообщения: 146

Python. Аргументы запуска

Сообщение vonabarak »

Помогите разобраться. Питон3 полностью перешел на юникод и ему теперь аргументы запуска подавай в wchar_t*
А си-приложение, которое подключает шаред-либ libpython.so получает эти самые аргументы как char*
Суть вопроса. Как сделать из второго первое? Покурил "man 3 mbstowcs", но строки, которые делает эта функция даже не печатает printf(), а если их передать питону, то там кракозябли вместо символов.Как ей вообще пользоваться? Или мож я не в правильном напрвлении мыслю? Мож надо gcc как-то по особенному пересобрать. Локаль я использую Utf-8.
Хоть куда копать подскажите.
Йа тьомный эльф
Спасибо сказали:
d_n_k
Сообщения: 636
ОС: Gentoo GNU/Linux

Re: Python. Аргументы запуска

Сообщение d_n_k »

в unicodeobject.h перечислено много функций для работы с unicode-object'ами
все сказанное есть имхо...
Спасибо сказали:
Аватара пользователя
vonabarak
Сообщения: 146

Re: Python. Аргументы запуска

Сообщение vonabarak »

Вообще, мне не с unicode object надо. Мне просто надо было перегнать char в wchar_t. Но я уже нашел решение. Просто

oldlocale = setlocale(LC_ALL, NULL);
setlocale(LC_ALL, "");
/* тут цикл for(;;) со всеми вытекающими
из него последствиями и mbstowcs()
*/
setlocale(LC_ALL, oldlocale);

Нашел в исходниках Питона.
Йа тьомный эльф
Спасибо сказали: