UTF8 -> ANSI mass-konvertering?

Jimbo
Inlägg: 21
Blev medlem: 28 okt 2007, 22:06

UTF8 -> ANSI mass-konvertering?

Inlägg av Jimbo »

Jag har ett helt gäng med filer i utf8 som jag skulle behöva konvertera om till ansi för att de ska visas rätt när jag trycker ut dom med apache.
Går detta att göra genom något kommando eller måste jag skriva/tanka hem något program?

Nuvarande lösning är att tanka över filerna till en windows-dator och sedan öppna dom i notepad och spara om dom som ett ansi-dokument och sedan flytta tillbaka dom.

tack för all hjälp jag kan få.
mvh, Jim.
andol
Inlägg: 3093
Blev medlem: 31 dec 2007, 00:19
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur

SV: UTF8 -> ANSI mass-konvertering?

Inlägg av andol »

Givet att du inte har något emot terminalen så är recode ett trevligt program/kommando för att konvertera teckenkodningen i (text)filer. Det ligger inte installerat som default, men finns att hämta via synaptic/apt-get.

En alternativ lösning kanske annars skulle kunna vara att låta Apache servera filerna direkt som UTF-8?
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

SV: UTF8 -> ANSI mass-konvertering?

Inlägg av mcNisse »

jag har använd ett program recode. Det är bara använda find.

Kod: Markera allt

find . -type f -print0 | xargs -0 recode UTF-8...ISO-8859-1
Dock tycker jag att det är en bakvänd lösning. Apache borde klara av att visa filer kodade i UTF-8....
KDE 4.5 SC är ute i det fria!!! Tjoho

Stagnation is good for nobody - after all if you don't progress you end up with gnome
Jimbo
Inlägg: 21
Blev medlem: 28 okt 2007, 22:06

SV: UTF8 -> ANSI mass-konvertering?

Inlägg av Jimbo »

tack för kommandot mcNisse, en fråga bara, visst är det begränsat till den aktiva mappen man är i så att säga.

jo andol, jag vet att det är lite bakvänt, men när apache ska visa en fil som innehåller åäö samt är kodat i utf8 fungerar det helt enkelt inte. jag får bara en massa fyrkanter och konstiga krumilurer.
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

SV: UTF8 -> ANSI mass-konvertering?

Inlägg av mcNisse »

Det stämmer bra, "." syftar på aktuell katalog.
KDE 4.5 SC är ute i det fria!!! Tjoho

Stagnation is good for nobody - after all if you don't progress you end up with gnome
Jimbo
Inlägg: 21
Blev medlem: 28 okt 2007, 22:06

SV: UTF8 -> ANSI mass-konvertering?

Inlägg av Jimbo »

Tusen tack för de extremt snabba svaren!
andol
Inlägg: 3093
Blev medlem: 31 dec 2007, 00:19
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur

SV: UTF8 -> ANSI mass-konvertering?

Inlägg av andol »

Jimbo skrev: jo andol, jag vet att det är lite bakvänt, men när apache ska visa en fil som innehåller åäö samt är kodat i utf8 fungerar det helt enkelt inte. jag får bara en massa fyrkanter och konstiga krumilurer.
Gissningsvis beror detta på att Apache talar om för webbläsaren att den skickar information i iso-8859-1 varpå webbläsaren försöker tolka texten därefter. Hurtillvida så är fallet kan man till exempel kolla genom att begära upp Sidinfo i Firefox (ctrl + i) och se vad den anger för kodning.

Är det förresten din Apache eller någonannans?

Vad gäller mcNisses kommandorad så är den en väldigt smidig lösning om man behöver traversera ett helt filträd med underkataloger och allt. Ligger däremot alla filerna i samma folder kommer man lite lättare undan med exempelvis: recode utf-8..iso-8859-1 *.txt (alternativt annan filmask)
Jimbo
Inlägg: 21
Blev medlem: 28 okt 2007, 22:06

SV: UTF8 -> ANSI mass-konvertering?

Inlägg av Jimbo »

När jag använder kommandot så får jag följande fel:

find . -type f -print0 | xargs -0 recode UTF-8..ISO-8859-1
recode: ./css.css failed: Invalid input in step `UTF-8..ISO-8859-1'

Sen blir det samma fel på precis alla filer. Det konstiga är att det löste problemet.

Är det så att om filerna redan är i ISO-standarden så blir det fel?
Finns det kanske något sätt att ta reda på vad det är i för standard?
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

SV: UTF8 -> ANSI mass-konvertering?

Inlägg av mcNisse »

Du har kanske bara två punter, det ska vara tre?
KDE 4.5 SC är ute i det fria!!! Tjoho

Stagnation is good for nobody - after all if you don't progress you end up with gnome
Jimbo
Inlägg: 21
Blev medlem: 28 okt 2007, 22:06

SV: UTF8 -> ANSI mass-konvertering?

Inlägg av Jimbo »

mcNisse skrev: Du har kanske bara två punter, det ska vara tre?
Testat med både tre och två punkter, får båda gångerna felmeddelandet:
recode: ./test2.php failed: Invalid input in step `UTF-8..ISO-8859-1'
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

SV: UTF8 -> ANSI mass-konvertering?

Inlägg av mcNisse »

Du måste nog kontrollera vad du har för kodning i filen. Öppna filen i en editor som klarar att byta teckenkodning och se om du kan byta till en som visar innehållet på ett korrekt sätt. Dessa editorer vet jag klarar av det emacs, kate, kwrite.

Det går inte att köra recode två gånger på samma fil med samma argument... det kan bli kaos.
KDE 4.5 SC är ute i det fria!!! Tjoho

Stagnation is good for nobody - after all if you don't progress you end up with gnome
KiviE
Inlägg: 2157
Blev medlem: 25 okt 2007, 14:00
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Ort: Luleå

SV: UTF8 -> ANSI mass-konvertering?

Inlägg av KiviE »

För att visa hemsidorna i rätt teckenkodning lägg till i head på hemsidan.

<head>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
</head>

Skulle starkt rekommendera att alltid skriva ut i head vilken teckenkodning som ska användas.
Jimbo
Inlägg: 21
Blev medlem: 28 okt 2007, 22:06

SV: UTF8 -> ANSI mass-konvertering?

Inlägg av Jimbo »

mcNisse skrev: Du måste nog kontrollera vad du har för kodning i filen. Öppna filen i en editor som klarar att byta teckenkodning och se om du kan byta till en som visar innehållet på ett korrekt sätt. Dessa editorer vet jag klarar av det emacs, kate, kwrite.

Det går inte att köra recode två gånger på samma fil med samma argument... det kan bli kaos.
Det är precis det jag vill göra men eftersom jag inte har något GUI till servern så blir det lite svårt.
Finns det inget kommando som visar vilken kodningen en fil har?
andol
Inlägg: 3093
Blev medlem: 31 dec 2007, 00:19
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur

SV: UTF8 -> ANSI mass-konvertering?

Inlägg av andol »

KiviE skrev: För att visa hemsidorna i rätt teckenkodning lägg till i head på hemsidan.

<head>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
</head>

Skulle starkt rekommendera att alltid skriva ut i head vilken teckenkodning som ska användas.
Det där är en lösning som inte nödvändigtvis ger sådär överdrivet mycket resultat. Givet att webbservern skickar motsvarande info som http-header prioriteras det värdet i princip alltid framför vad som står i html-huvudet. Däremot så är det förstås för ordningens skull snyggt att ha med.

http-headerns för teckenkodning sätts på lämplig plats i apacheconfen (virtualhost, directory, etc) alternativt i en .htaccess om sådan delegering tillåts.

AddDefaultCharset UTF-8
andol
Inlägg: 3093
Blev medlem: 31 dec 2007, 00:19
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur

SV: UTF8 -> ANSI mass-konvertering?

Inlägg av andol »

Jimbo skrev: Finns det inget kommando som visar vilken kodningen en fil har?
Njae

Då det i en textfil aldrig explicit definieras vilken teckenkodning som används finns det inget sätt att säkert Veta vilken teckenkodning den använder. Däremot finns det program som är duktiga på att göra kvalificerad gissningar. Ett sådant program är file. Det är ett program som tittar på en fil, försöker avgöra vad det är för sorts fil och sen presentera lite kort information, baserad på filtypen, om filen ifråga.

file filnamn.foo

Nu kan dock file få för sig att vara lite godtycklig med när den ska spotta ur sig information om teckenkodning eller ej. Ett tips är då att slänga på --mime flaggan.

file --mime filnamn.foo
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

SV: UTF8 -> ANSI mass-konvertering?

Inlägg av mcNisse »

Jimbo skrev:
mcNisse skrev: Du måste nog kontrollera vad du har för kodning i filen. Öppna filen i en editor som klarar att byta teckenkodning och se om du kan byta till en som visar innehållet på ett korrekt sätt. Dessa editorer vet jag klarar av det emacs, kate, kwrite.

Det går inte att köra recode två gånger på samma fil med samma argument... det kan bli kaos.
Det är precis det jag vill göra men eftersom jag inte har något GUI till servern så blir det lite svårt.
Finns det inget kommando som visar vilken kodningen en fil har?
Installera emacs. Den fungerar i terminalen också, eller rättare sagt emacs fungerar även under x :). M-x set-buffer-file-coding-system.
Senast redigerad av 1 mcNisse, redigerad totalt 24 gånger.
KDE 4.5 SC är ute i det fria!!! Tjoho

Stagnation is good for nobody - after all if you don't progress you end up with gnome
Skriv svar

Återgå till "För nybörjaren - inaktuell"