Sælir,
Er að lenda í veseni með íslenska stafi í Perl. Er að reyna að skeyta saman strengjum, upphafið er bara eðlileg byrjun á urli, í miðjunni er svo orð sem getur innihaldið íslenska stafi, og endar strengurinn á restinni af urlinu (er sem sagt að keyra orð í gegnum fallbeyginguna á bin.arnastofnun.is). Ekki vill svo heppilega til að til sé einhver sleggju lausn sem að lætur þennan höfuðverk nánast hverfa?
use utf8; virkar ekki (gefur autt pláss í stað íslensks stafs)
Ef ég geri ekkert í encoding þá fæ ég punkt sem er fyrir miðju á hæð og frekar langt til hægri (ekki hugmynd hvaða character þetta er).
Kv.
ManiO.
Íslenskir stafir í Perl?
-
Höfundur - Besserwisser
- Póstar: 3963
- Skráði sig: Fim 08. Jún 2006 18:40
- Reputation: 0
- Staðsetning: Seltjarnarnes
- Staða: Ótengdur
Íslenskir stafir í Perl?
"Knowledge is knowing that a tomato is a fruit,
wisdom is knowing not to put one in a fruit salad."
wisdom is knowing not to put one in a fruit salad."
-
Höfundur - Besserwisser
- Póstar: 3963
- Skráði sig: Fim 08. Jún 2006 18:40
- Reputation: 0
- Staðsetning: Seltjarnarnes
- Staða: Ótengdur
Re: Íslenskir stafir í Perl?
Ég verð bara að viðurkenna að ég er engan veginn nægilega fróður um alla þessa staðla sem eru í gangi.
chcp skipunin í cmd t.d. gefur mér 850 sem ég hef ekki grænan grun um hvað er. (user input gefur mér reyndar réttar niðurstöður)
Notepad++ er stilltur á UTF-8.
chcp skipunin í cmd t.d. gefur mér 850 sem ég hef ekki grænan grun um hvað er. (user input gefur mér reyndar réttar niðurstöður)
Notepad++ er stilltur á UTF-8.
"Knowledge is knowing that a tomato is a fruit,
wisdom is knowing not to put one in a fruit salad."
wisdom is knowing not to put one in a fruit salad."
-
- Besserwisser
- Póstar: 3835
- Skráði sig: Sun 20. Okt 2002 09:35
- Reputation: 157
- Staðsetning: Somewhere something went horribly wrong
- Staða: Ótengdur
Re: Íslenskir stafir í Perl?
850 er codepage (sem maður notaði í DOS). 861 var íslenska code pageið. Ættir að geta googlað eitthvað um codepage. Geturðu ekki látið pearl outputa í hvaða encoding það er, er það ekki global breyta? Í java þarf að breyta þessu í startup fyrir VMið, ekki hægt að gera í runtime. Minnir mig.
Þarftu ekki annars að encoda strenginn sem kemur úr vefþjónustunni? Mér þykir líklegt að hann sé að koma í öðru encoding en strengurinn sem þú ert að smíða í skriptunni og þegar þú límir þá saman færðu "óvæntar" niðurstöður. Eru ekki til einhver föll í pearl sem skila encoding á strengjum?
Þarftu ekki annars að encoda strenginn sem kemur úr vefþjónustunni? Mér þykir líklegt að hann sé að koma í öðru encoding en strengurinn sem þú ert að smíða í skriptunni og þegar þú límir þá saman færðu "óvæntar" niðurstöður. Eru ekki til einhver föll í pearl sem skila encoding á strengjum?
-
Höfundur - Besserwisser
- Póstar: 3963
- Skráði sig: Fim 08. Jún 2006 18:40
- Reputation: 0
- Staðsetning: Seltjarnarnes
- Staða: Ótengdur
Re: Íslenskir stafir í Perl?
Fann einhverja allra mestu shit-mix lausn.
Hafa eftirfarandi í hausnum á kóðanum,
Svo ef að lesa á inn íslenska stafi, setja það í txt file, lesa hann svo inn [í mínu tilfelli er þetta eitt orð],
Svo til að fá nothæfa stafi fyrir url,
Þetta er fáránlega ljótt, en er búið að redda mér.
Hafa eftirfarandi í hausnum á kóðanum,
Kóði: Velja allt
use utf8;
use Encode qw(decode HTMLCREF);
use URI;
Svo ef að lesa á inn íslenska stafi, setja það í txt file, lesa hann svo inn [í mínu tilfelli er þetta eitt orð],
Kóði: Velja allt
open FILE, "<gata.txt";
chomp($ord = do { local $/; <FILE> });
Svo til að fá nothæfa stafi fyrir url,
Kóði: Velja allt
#skeytir saman urlinu
$slod = $upphaf . $ord . $endir;
$slod=decode('iso-8859-1', $slod, HTMLCREF);
$url = URI->new("$slod");
Þetta er fáránlega ljótt, en er búið að redda mér.
"Knowledge is knowing that a tomato is a fruit,
wisdom is knowing not to put one in a fruit salad."
wisdom is knowing not to put one in a fruit salad."
-
- Besserwisser
- Póstar: 3835
- Skráði sig: Sun 20. Okt 2002 09:35
- Reputation: 157
- Staðsetning: Somewhere something went horribly wrong
- Staða: Ótengdur
Re: Íslenskir stafir í Perl?
Er ekki nóg að decode-a bara þann part sem þú sækir með vefþjónustunni? Ekki að það breyti neinu, þú finnnur líklega aldrei neina elegant lausn í svona textafimleikum. Nema að þú getur neytt vefþjónustuna til að skila streng í ákveðnum formi, hjúpa hana með einhverjum decode kóða?
-
Höfundur - Besserwisser
- Póstar: 3963
- Skráði sig: Fim 08. Jún 2006 18:40
- Reputation: 0
- Staðsetning: Seltjarnarnes
- Staða: Ótengdur
Re: Íslenskir stafir í Perl?
Daz skrifaði:Er ekki nóg að decode-a bara þann part sem þú sækir með vefþjónustunni? Ekki að það breyti neinu, þú finnnur líklega aldrei neina elegant lausn í svona textafimleikum. Nema að þú getur neytt vefþjónustuna til að skila streng í ákveðnum formi, hjúpa hana með einhverjum decode kóða?
Nenni ekki að pæla of mikið í þessu. Þetta virkar hingað til, ef ég rek mig á vesen seinna þá pæli ég betur í þessu.
"Knowledge is knowing that a tomato is a fruit,
wisdom is knowing not to put one in a fruit salad."
wisdom is knowing not to put one in a fruit salad."
-
- Gúrú
- Póstar: 542
- Skráði sig: Mán 24. Des 2007 11:23
- Reputation: 8
- Staðsetning: localhost
- Staða: Ótengdur
Re: Íslenskir stafir í Perl?
Vefþjónustur eiga náttúrulega bara að vera í UTF-8 nema þær bjóði uppá mörg encoding.
Foobar