Sida 1 av 1
iso-8859-1 i datafiler och utf-8 i källkoden för Perl
Postat: 31 aug 2007, 11:08
av dlridings
Ok,
Man har UTF-8. Whoopie, cool, dig-it.
Men vad hjälper det när så mycket data finns i iso-8859-1?
I Python kan jag göra min uppgift lätt. Jag hoppades det skulle gå i Perl.
Jag vill använda åäö i ett regulärt uttryck.
När jag skriver källkod, blir det åäö i UTF-8
Men den datamängde som perl ska köras mot är i iso-8859-1.
Så jag kan aldrig få träffa genom att söka UTF i en iso-datamängd.
Aha, Perl har säkert något som Pythons codecs och encoding.
Jag tester:
use Encode 'decode';
och sedan:
$data = decode("iso-8859-1", $_);
Inte konverteras iso till utf, inte.
Det händer ingenting.
Tips?
Daniel
SV: iso-8859-1 i datafiler och utf-8 i källkoden för Perl
Postat: 31 aug 2007, 15:36
av dlridings
Jag trodde väl det.
Det är egentligen inte möjligt att utveckla program på ubuntu som kör med UTF-8.
Den enda lösning jag kan komma på är att boota om till Windows och kör via MSDOS prompt. Vem hade trott?!
Daniel
SV: iso-8859-1 i datafiler och utf-8 i källkoden för Perl
Postat: 31 aug 2007, 15:45
av Barre
dlridings skrev:
Jag trodde väl det.
Det är egentligen inte möjligt att utveckla program på ubuntu som kör med UTF-8.
Klart att det går
Du skrev ju själv att du lyckades i Python, men inte i perl.. så uppenbarligen går det.
Att du inte kan är inte samma sak som att det är omöjligt!
Och ha lite tålamod, snart kanske det dyker upp en perl-kunnig person som kan hjälpa dig.
Under tiden kanske du kan prova på perl-relaterade forum
Här är några exempel på såna forum:
http://perlguru.com/
http://www.tek-tips.com/threadminder.cfm?pid=219
http://perl.lco.net/Forums/tabid/277/Default.aspx
http://www.thescripts.com/forum/forum150.html
SV: iso-8859-1 i datafiler och utf-8 i källkoden för Perl
Postat: 31 aug 2007, 16:27
av dlridings
Jag hittade ett annat sätt.
Linux är inte UTF-8 mogen ännu. Det märks ibland.
Vi (editorn jag föredrar) använder UTF-8.
Då var det omöjligt.
Efter det att jag körde i Windows, bootade jag tillbaka till Linux för att jag glömde en script. Då slog det mig ... Emacs är ganska (fill-in-the-blank) ... och mycket riktigt, emacs använder ISO-8859-1 default.
Då kunde jag skriva om det regulära uttrycket med emacs för att bli av med UTF-8 och det fungerade.
Datamängden är fortfarande iso-8859-1 även som resultet, men det ville jag också. UTF-8 är inte så användbar ännu.
Daniel
SV: iso-8859-1 i datafiler och utf-8 i källkoden för Perl
Postat: 31 aug 2007, 17:21
av DrMegahertz
Vi befinner oss i en övergångsfas då utf-8 börjar stödjas i fler och fler applikationer(vilket är en mycket bra sak) och då får man helt enkelt räkna med att det kan bli lite strul med sin gamla data som är kodad i ett annat format.
SV: iso-8859-1 i datafiler och utf-8 i källkoden för Perl
Postat: 31 aug 2007, 18:25
av gasol
ställ om din terminal du kodar i till ISO-8859-1 skriv koden och kör...
SV: iso-8859-1 i datafiler och utf-8 i källkoden för Perl
Postat: 31 aug 2007, 21:17
av dlridings
gasol skrev:
ställ om din terminal du kodar i till ISO-8859-1 skriv koden och kör...
Och det gör man med ... stty? jag hittar inga flaggar i man-sidan.
SV: iso-8859-1 i datafiler och utf-8 i källkoden för Perl
Postat: 19 sep 2007, 16:48
av Daniel Nylander
Allt finns ju dokumenterat på
http://perldoc.perl.org/Encode.html
$octets = encode("iso-8859-1", $string);
$string = decode("iso-8859-1", $octets);
Vill man konvertera allt sitt gamla data kan man använda iconv