LINUX.ORG.RU

А чем объясняется нежелание?

Ну в вообще - не так уж сложно написать декодер разумного подмножества UTF-8.

anonymous
()
Ответ на: комментарий от watashiwa_daredeska

> Он давно уже часть glibc.

Судя по всему вопрошающему сее надо для win32, а там glibc ещё менее "родная" нежели iconv (который "штатно" собирается mingw), да и просто содержит в составе iconv.dll (что тоже криво - "штатное" имя другое - ну нафига это надо было делать? 8-Е )

yyk ★★★★★
()
Ответ на: комментарий от aton

О написании функции перекодировки для небольшого набора символов вручную очевидно.

bugmaker ★★★★☆
()
Ответ на: комментарий от anonymous

> А чем объясняется нежелание?

Дело в том, что я пишу кроссплатформенного ODBC-клиента (под GPL) на Си.
Хочется максимально облегчить компиляцию тем, кто будет собирать систему из исходников.
Ведь при использовании iconv им придется тащить архив iconv и собирать его.
А бинарники мне плодить не хочется.

> Ну в вообще - не так уж сложно написать декодер разумного подмножества UTF-8.

Поскольку моя программа ориентирована на русскоязычных пользователей - верятно так и сделаю. :)

pacify ★★★★★
() автор топика
Ответ на: комментарий от pacify

Русскоязычные пользователи ценят велосипеды с квадратными колесами? На виндах это нужно делать через IMultiLanguage->ConvertString

faber
()
Ответ на: комментарий от faber

1. Русскоязычные пользователи ценят продукты, работающие "из коробки", желательно - без кряков.
2. IMultiLanguage нет в среде MinGW32 (для нее нужен IE4 и выше):
# grep -ire IMultiLanguage /usr/i586-mingw32msvc/include/ | wc -l
0
3. Кажется я нашел нужную функцию:
http://forum.ixbt.com/topic.cgi?id=26:30096
IMultiLanguage даёт возможность сконвертировать строку из одной кодовой
страницы в другую за один вызов, зато у неё меньше настроек, чем
в варианте MultiByteToWideChar+WideCharToMultiByte - например, нет
управления, что вставлять вместо символа, отсутствующего в кодовой странице.

# grep -wire MultiByteToWideChar /usr/i586-mingw32msvc/include/
/usr/i586-mingw32msvc/include/winnls.h:WINBASEAPI int WINAPI MultiByteToWideChar(UINT,DWORD,LPCSTR,int,LPWSTR,int);

pacify ★★★★★
() автор топика
Ответ на: комментарий от pacify

1. Как может не работать из коробки решение, входящее в состав виндов? Или тебе под W95/NT4 нужно?
2. grep -ire IMultiLanguage /usr/i686-mingw32/usr/include/ | wc -l
6
ты w32api какой версии собрал?
3. IMultiLanguage это не функция, а интерфейс к классу CLSID_CMultiLanguage. Функция называется ConvertString, о которой я писал тебе двумя постами выше.

faber
()
Ответ на: комментарий от faber

> 2. grep -ire IMultiLanguage /usr/i686-mingw32/usr/include/ | wc -l
> 6
> ты w32api какой версии собрал?

Я ничего не собирал - у меня Debian Etch, в котором есть пакет mingw32.

$ apt-cache show mingw32
Package: mingw32
Priority: optional
Section: devel
Installed-Size: 43080
Maintainer: Ron Lee <ron@debian.org>
Architecture: i386
Version: 3.4.5.20060117.1.dfsg-2
Depends: mingw32-binutils, mingw32-runtime (>= 3.7), libc6 (>= 2.3.6-6)
Suggests: gcc-doc, cpp-doc
Filename: pool/main/m/mingw32/mingw32_3.4.5.20060117.1.dfsg-2_i386.deb
Size: 9941662

pacify ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.