Kirjoittaja Aihe: html-tiedostojen merkistönmuutos  (Luettu 2293 kertaa)

ilkant

  • Käyttäjä
  • Viestejä: 1381
  • Kubuntu
    • Profiili
html-tiedostojen merkistönmuutos
« : 08.10.06 - klo:15.10 »
Html-tiedostoja on tehty latin-1 -merkistökoodauksella. Sitten pelvelinkoneeseen on vaihdettu distro ja järjestelmän merkistöksi on määritelty utf-8. Apache2:n oletusmerkistöksi on asetettu latin-1. Hyvä. Homma pelaa siltä osin, mutta... Kun palvelinkoneella tekee uusia tiedostoja, niin ne ovatkin oletuksena utf-8 -koodattuja (niitä tekee jotkut kolmannen osapuolen ohjelmatkin).

Kokeiluissa on ilmaantunut sellainenkin seikka, että webbisivua katseleva selain ei näytä sivua header-osan merkistömääritysten mukaan, vaan palvelimelta tulevan merkistökoodin mukaan. Eli skandit näkyvät oudosti joillakin sivuilla.

Kysymys: Millä tavalla kaikki webbisivut saisi muutettua utf-8:ksi? Luulisi, että tähän kysymykseen on törmännyt muutkin. Google-haut eivät tuoneet suoraa vastausta kuitenkaan. Yhden hakemiston tiedostojen merkistön voisi vaihtaa näin:

recode -v ISO_8859-1..UTF-8 *.html
sed -i s/iso-8859-1/utf-8/ *.html

Ensimmäinen uudelleenkoodaa tiedoston merkistön ja jälkimmäinen vaihtaa headeriin merkistömääritelmän (aikas kätevä sinänsä). Mutta... Järjestelmässä on myös php-sivuja.

Sitten tuon menetelmän kaatava yllätys kokeiluissa: Jotkut sivut onkin saatu kavereilta ja ne on tehty Windowsissa, koodauksena windows-1252. Heh. Levyltä voi löytyä vielä muitakin merkistökoodauksia webbisivuina...

Kysymys: Onko järkevämpi tehdä sh-skriptihässäkkä, joka osaisi nuo kaikki muuntaa utf-8:si? Vai perlillä? Vai C++:lla vai javalla? Olen itse päätynyt java-ohjelmaan. Onko parempia ehdotuksia? Valmiita ratkaisuja?

Yksi mahdollisuus on pitää webbisivut latin-1:sinä, mutta pitkän päälle se tuskin tulee onnistumaan.

ilkant

  • Käyttäjä
  • Viestejä: 1381
  • Kubuntu
    • Profiili
Re: html-tiedostojen merkistönmuutos
« Vastaus #1 : 11.10.06 - klo:10.20 »
Repositoryistä löytyy tällaisia työkaluja kuin utf8-migration-tool ja konq-toutf8. Muitten kokeiluissa ne ovat kuitenkin muuttaneet esim. jo utf-8 merkkejä uudelleen eli kaksinkertaiseksi tiedostonnimissä. Jälkimmäinen sai minun koneella KDE 3.5.4 Konquerorin näyttämään aiemmin oikein näytetyt skandinaaviset merkit mustina vinoneliöinä.  :(