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?
sed, grep klarar inte sv bokstäver [LÖST]
sed, grep klarar inte sv bokstäver [LÖST]
Senast redigerad av 2 ubot, redigerad totalt 3 gång.
-
- 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
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" />
Teckenkodningen anges i html med t.ex. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Re: sed, grep klarar inte sv bokstäver
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.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" />
Re: sed, grep klarar inte sv bokstäver
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.