Кириллические домены РФ в PunyCode

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Кириллические домены РФ в PunyCode

Сообщение Art!P » 27.12.2012 17:41:34

Хочу (надо) домены в пуникод конвертить, но что-то сегодня у меня не очень получается.
Может есть у кого готовая либа?
Смотрю в строну дллки normaliz.dll функция IdnToAscii, но я не силен в Cи с MSDN.
Аватара пользователя
Art!P
новенький
 
Сообщения: 27
Зарегистрирован: 28.07.2012 14:37:53

Re: Кириллические домены РФ в PunyCode

Сообщение Ichthyander » 27.12.2012 18:23:38

А зачем для этого DLL? Этот Delphi код не пробовали для преобразования http://www.delphisources.ru/forum/showt ... hp?t=15745 ?
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 698
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Кириллические домены РФ в PunyCode

Сообщение Art!P » 27.12.2012 19:04:55

Не хочет конвертить, вопросы отдает

Добавлено спустя 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;
Аватара пользователя
Art!P
новенький
 
Сообщения: 27
Зарегистрирован: 28.07.2012 14:37:53

Re: Кириллические домены РФ в PunyCode

Сообщение Mr.Smart » 27.12.2012 22:37:26

http://tools.ietf.org/html/rfc3492 читаем и реализуем!
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Кириллические домены РФ в PunyCode

Сообщение Art!P » 03.01.2014 18:57:02

Решил поднять этот старый топик.

Сейчас возникла необходимость конвертации домена в линуксе. В линуксах имеется аналогичная библиотека 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

Подключил к проекту и прекрасно конвертирует :D
Аватара пользователя
Art!P
новенький
 
Сообщения: 27
Зарегистрирован: 28.07.2012 14:37:53


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 229

Рейтинг@Mail.ru