Хочу (надо) домены в пуникод конвертить, но что-то сегодня у меня не очень получается.
Может есть у кого готовая либа?
Смотрю в строну дллки normaliz.dll функция IdnToAscii, но я не силен в Cи с MSDN.
Кириллические домены РФ в PunyCode
Модератор: Модераторы
- Ichthyander
- энтузиаст
- Сообщения: 701
- Зарегистрирован: 04.04.2007 08:32:43
- Откуда: Астрахань
- Контактная информация:
А зачем для этого DLL? Этот Delphi код не пробовали для преобразования http://www.delphisources.ru/forum/showt ... hp?t=15745 ?
Не хочет конвертить, вопросы отдает
Добавлено спустя 45 минут 47 секунд:
Сделал с normaliz.dll
статичное подключение длл
Функия конвертора
Добавлено спустя 45 минут 47 секунд:
Сделал с normaliz.dll
статичное подключение длл
Код: Выделить всё
function IdnToAscii(Flags:dword;UnicodeChar:Pwidechar;CountChar:integer;
ASCIIChar:Pwidechar;CountASCII:integer):integer; stdcall;
implementation
{$R *.lfm}
{ TForm1 }
function IdnToAscii(Flags:dword;UnicodeChar:Pwidechar;CountChar:integer;
ASCIIChar:Pwidechar;CountASCII:integer):integer; stdcall; external 'normaliz.dll'; Функия конвертора
Код: Выделить всё
function ToPunyCode(str:String):string;
var
a:WideString;
b:array [0..255] of WideChar;
begin
fillchar(b,255,#0);
a:=UTF8Decode(str);
IdnToAscii(0,Pwidechar(a),Length(a),b,256);
result:=PWideChar(@b);
end;http://tools.ietf.org/html/rfc3492 читаем и реализуем!
Решил поднять этот старый топик.
Сейчас возникла необходимость конвертации домена в линуксе. В линуксах имеется аналогичная библиотека Libidn и консольное приложение на её основе idn
Сама либа при необходимости устанавливается (дебиане, убунта):
На основе уже есть паскаль код http://zooplah.farvista.net/en/programm ... idn.tar.xz
сайт автора http://zooplah.farvista.net/en/programming/pascal/offerings.xhtml
Подключил к проекту и прекрасно конвертирует
Сейчас возникла необходимость конвертации домена в линуксе. В линуксах имеется аналогичная библиотека Libidn и консольное приложение на её основе idn
Сама либа при необходимости устанавливается (дебиане, убунта):
Код: Выделить всё
apt-get install libidn idnНа основе уже есть паскаль код http://zooplah.farvista.net/en/programm ... idn.tar.xz
сайт автора http://zooplah.farvista.net/en/programming/pascal/offerings.xhtml
Подключил к проекту и прекрасно конвертирует
