16. juli 2012 - 20:43Der er
11 kommentarer og 1 løsning
Encoding xn--vrvl-hra.dk ændres til vrøvl.dk og omvendt
Jeg har et program der foretager forskellige funktioner med domænenavne. Desuden har jeg en liste med navnene. I listen bruges æ ø og å af og til, ved nogle af mine funktioner skal det være sådan, men ved andre skal de være kodet således: xn--vrvl-hra.dk
Kort sagt vil jeg gerne have et par linier der oversætter mellem de 2 formater.
Script 1: $urltype1="xn--vrvl-hra.dk"; #Her mangler jeg et par linier print "Det bliver til: $urltype2\n";
Dette script skal give output: Det bliver til : vrøvl.dk
Script 2: $urltype2="vrøvl.dk"; #Her mangler jeg et par linier print "Det bliver til: $urltype1\n";
Dette script skal give output: Det bliver til : xn--vrvl-hra.dk
Nøh de eksempler jeg finder bruger alle den, så nu har jeg forsøgt
sudo cpan -i Net::LibIDN
Men så får jeg fejlmeddelelse __test1.c:1:18: error: idna.h: No such file or directory __test1.c:1:18: error: idna.h: No such file or directory This module requires GNU Libidn, which could not be found. -- NOT OK Running make test Can't test without successful make Running make install make had returned bad status, install seems impossible
Nu har jeg fået det installeret, og jeg er tæt på at det virker, nu får jeg punycode, men jeg er åbenbart ikke enig med systemet i hvordan et ø ser ud, men det kan jeg rette med en regexp så snart er jeg flyvende. Tak for hjælpen - navnet "Punycode" var det der fik mig videre.
Hvad jeg endte med at gøre: Installere GNO LibIDN 1.9 som nævnt ovenfor (nyere versioner viirker ikke til nedenstående) Installere Net::LibIDN som nævnt ovenfor bruge koden fra wengsheng ovenfor til scriptet nedenfor.
#!/bin/env perl use Net::LibIDN ':all'; open (OUTFILE, ">>outfile.txt"); print OUTFILE $ARGV[0] . " Bliver til \n"; print OUTFILE idn_to_ascii($ARGV[0],'utf-8') . "\n"; print OUTFILE idn_to_unicode($ARGV[0],'utf-8') . "\n"; print OUTFILE idn_punycode_encode($ARGV[0],'utf-8') . "\n"; print OUTFILE idn_punycode_decode($ARGV[0],'utf-8') . "\n"; close (OUTFILE);
Jeg gav dig gerne point, men husker fra sidste år at du ikke vil have dem. Hvis du dropper et svar - giver jeg dig points, ellers lukker jeg spg om 1 måned og tager points selv.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.