sed, grep klarar inte sv bokstäver [LÖST]

Här diskuteras programmering och utveckling
ubot
Inlägg: 4613
Blev medlem: 04 jan 2008, 14:03
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS

sed, grep klarar inte sv bokstäver [LÖST]

Inlägg av ubot »

Jag försöker klippa text men har stött på ett problem. När svenska bokstäver dyker upp i texten så syns ett frågetecken i en svart ruta. Det gör att grep och sed klipper texten konstigt. Bla klarar grep -o ".*" inte av att lägga hela texten på en rad utan klipper texten där svenska bokstäver förekommer och sedan hamnar resten på en ny rad. Texten kommer ursprungligen från en webbsida via curl och har sedan passerat ett php-skript med reg_match mm.

Vad är det här och vad gör man åt problemet?

Edit:

Problmet beror om jag förstår saken rätt på att i webbsidornas kod syns svenska tecken som html-tecken, men det verkar inte php-funktionen file_get_contents() (inte heller curl) av. Så lösningen kanske är att få curl att hämta koden utan att byta ut svenska tecken i html-format till konstiga tecken.

Kan det vara Terminalens hantering av teckenkodning som spökar? När jag tittar på koden till webbsidan så är sv tecken en kombination av bokstäver mm (html-tecken?), men när det skriv ut i Terminalen så ser man inte sv tecken utan massa konstigheter istället för å, ä och ö. Det här förstör mitt skripts funktion. Men var är felet? Jag misstänker Terminalens teckenkodning?
Senast redigerad av 2 ubot, redigerad totalt 3 gång.
Lars
Inlägg: 6191
Blev medlem: 14 jan 2007, 19:31
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

Re: sed, grep klarar inte sv bokstäver

Inlägg av Lars »

Ubuntu använder UTF-8 i hela systemet, men många webbsidor använder iso-latin-1. Du kan använda iconv för att översätta mellan olika teckenkodningar.

Teckenkodningen anges i html med t.ex. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
ubot
Inlägg: 4613
Blev medlem: 04 jan 2008, 14:03
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: sed, grep klarar inte sv bokstäver

Inlägg av ubot »

Lars skrev:Ubuntu använder UTF-8 i hela systemet, men många webbsidor använder iso-latin-1. Du kan använda iconv för att översätta mellan olika teckenkodningar.

Teckenkodningen anges i html med t.ex. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Jag har upptäckt detta. Jag har också fått rådet att köra allt genom en pipe med tcs -f 8859-1 på slutet. Är det bra? Ett problem är att även om jag ändrar till 8859-1 så blir svenska tecken inte svenska utan html-tecken, vilket förstör min filtrering senare.
ubot
Inlägg: 4613
Blev medlem: 04 jan 2008, 14:03
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: sed, grep klarar inte sv bokstäver

Inlägg av ubot »

Det här har med teckenkodningen att göra iaf. Ett jäkla strul att konvertera text mellan olika teckenkodningar, men jag vet vad som är problemet nu iaf.
Skriv svar

Återgå till "Programmering och webbdesign"