Kirjoittaja Aihe: ISO-8859-1 -> UTF-8 conversio  (Luettu 6547 kertaa)

Owdy

  • Käyttäjä
  • Viestejä: 1954
    • Profiili
ISO-8859-1 -> UTF-8 conversio
« : 14.07.06 - klo:22.58 »
Mulla on kasa tekstitiedostoja jotka haluaisin konvertoida UTF-8 formaattiin. Miten se onnistuis helpoiten?

raimo

  • Käyttäjä
  • Viestejä: 4269
  • openSUSE Tumbleweed
    • Profiili
Re: ISO-8859-1 -> UTF-8 conversio
« Vastaus #1 : 15.07.06 - klo:00.14 »
iconv
iconv --help
man iconv
http://www.gnu.org/software/libiconv/documentation/libiconv/iconv.1.html

Se ei ole ICONv  vaan Iconv ts. ikoneista ei ole kyse vaan koodauksen muuttamisesta jostakin joksikin toiseksi. ;)
Ainakin minulla tuo kyseinen iconv toimii, ellen sitten ole saanut sitä tartuntana jonkun muun asian mukana?

edittivä:
Koodia: [Valitse]
sudo apt-get install libtext-iconv-perl
ellei toimi, mutta taitaa se olla ihan vakiokamaa
« Viimeksi muokattu: 15.07.06 - klo:00.24 kirjoittanut raimo »
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

Owdy

  • Käyttäjä
  • Viestejä: 1954
    • Profiili
Re: ISO-8859-1 -> UTF-8 conversio
« Vastaus #2 : 15.07.06 - klo:00.30 »
Löysin tälläsen Nautilus scriptin:

Koodia: [Valitse]
#!/bin/bash
#
# File Name Encoding Conversion Script
#
# Use this script to convert file names with special characters
# between Windows-1252 and UTF-8 encoded file systems.
# The script can be easily modified to convert between any
# encoding to any other encoding.
#
# This script is similar to a script already available for the
# KDE desktop.
#
# changeFilenameCode
# http://kubuntu.free.fr/servicemenu/
#
# Original post:
# http://moto.debian.org.tw/viewtopic.php?t=5367
#
# Contributor:
# Adam Kane
# kane.adam@gmail.com
#
# The script has been modified to manage more than one
# file and to specifically convert from windows-1252 to utf-8.
#
# Dependencies : convmv
# http://j3e.de/linux/convmv/

if [ $# -gt 0 ];then
convmv -f ISO-8859-1 -t utf-8 -r --notest "$@"| zenity --progress --pulsate --text="conversion in progress" --auto-close
fi
exit 0

Owdy

  • Käyttäjä
  • Viestejä: 1954
    • Profiili
Re: ISO-8859-1 -> UTF-8 conversio
« Vastaus #3 : 16.07.06 - klo:22.56 »
Löysin tälläsen Nautilus scriptin:


Äh, convmv convertoi tiedoston nimet, ei sisältöä :P

Muoks: toimisko tämä nautilus scriptinä?
Koodia: [Valitse]
#!/bin/sh
# ISO-8859-1 to UTF-8 conversion
iconv --from-code=ISO-8859-1 --to-code=UTF-8
Millä loitsulla näkee tiedoston koodauksen?
« Viimeksi muokattu: 16.07.06 - klo:23.03 kirjoittanut Osku »

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Re: ISO-8859-1 -> UTF-8 conversio
« Vastaus #4 : 16.07.06 - klo:23.08 »
Muoks: toimisko tämä nautilus scriptinä?
Koodia: [Valitse]
#!/bin/sh
# ISO-8859-1 to UTF-8 conversion
iconv --from-code=ISO-8859-1 --to-code=UTF-8

ei toimi, sillä komennosta puuttuu se tiedosto jolle kyseinen toiminto suoritetaan (siis komennon viimeinen parametri).

Millä loitsulla näkee tiedoston koodauksen?

riippuu vähän mihin käyttöön. file nyt ainakin osaa sen näyttää, niissä tapauksissa joissa se on selvää.
Janne

Owdy

  • Käyttäjä
  • Viestejä: 1954
    • Profiili
Re: ISO-8859-1 -> UTF-8 conversio
« Vastaus #5 : 16.07.06 - klo:23.09 »
No osaisitko tehä tosta toimivan? Mulla ei o hajuakaan :)

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Re: ISO-8859-1 -> UTF-8 conversio
« Vastaus #6 : 16.07.06 - klo:23.14 »
No osaisitko tehä tosta toimivan? Mulla ei o hajuakaan :)

ei siihen tarvitse kuin lukea niitä nautiluksen asettamia ympäristömuuttujia ja loppu on ihan tavallista scriptausta. olisiko tuo nyt sitten vaikka:

Koodia: [Valitse]
#!/bin/sh
# ISO-8859-1 to UTF-8 conversion
for FILE in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do
    iconv --from-code=ISO-8859-1 --to-code=UTF-8 $FILE
done

täällä on jotain vinkkejä noihin scripteihin:
http://g-scripts.sourceforge.net/

[edit]
niin tuota scriptiä ei kyllä tullut testattua
Janne

Owdy

  • Käyttäjä
  • Viestejä: 1954
    • Profiili
Re: ISO-8859-1 -> UTF-8 conversio
« Vastaus #7 : 16.07.06 - klo:23.18 »
Ei se taida toimia. Kun avaan tiedoston Quantassa, se sanoo että se on iso-8859-1

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Re: ISO-8859-1 -> UTF-8 conversio
« Vastaus #8 : 16.07.06 - klo:23.27 »
Ei se taida toimia. Kun avaan tiedoston Quantassa, se sanoo että se on iso-8859-1

juu ei. nyt kun tarkistin, niin näyttää että tuo hoitaisi muunnoksen siten, että se tulostaa lopputuloksen stdoutiin.
Janne

Owdy

  • Käyttäjä
  • Viestejä: 1954
    • Profiili
Re: ISO-8859-1 -> UTF-8 conversio
« Vastaus #9 : 16.07.06 - klo:23.30 »
No miten me saatas siitä toimiva?

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Re: ISO-8859-1 -> UTF-8 conversio
« Vastaus #10 : 16.07.06 - klo:23.53 »
No miten me saatas siitä toimiva?

no, menisiköhän se sitten recodella?
jos vaikka rivin:
Koodia: [Valitse]
iconv --from-code=ISO-8859-1 --to-code=UTF-8 $FILE
korvaisikin rivillä:
Koodia: [Valitse]
recode Latin1..UTF-8 $FILE
Janne

Owdy

  • Käyttäjä
  • Viestejä: 1954
    • Profiili
Re: ISO-8859-1 -> UTF-8 conversio
« Vastaus #11 : 17.07.06 - klo:06.04 »
Toi Quanta näyttää ilmeisesti koodaukseksi sen mikä siihen on oletukseksi laitettu. Millähän sen näkis luotettavasti? File ei näytä sitä.
« Viimeksi muokattu: 17.07.06 - klo:06.07 kirjoittanut Osku »

raimo

  • Käyttäjä
  • Viestejä: 4269
  • openSUSE Tumbleweed
    • Profiili
Re: ISO-8859-1 -> UTF-8 conversio
« Vastaus #12 : 17.07.06 - klo:10.37 »
man iconv !!!  ;D

--output, -o FILE
Specify output file (instead of stdout).

Noin siis output muuksi kuin STDOUT
en tiedä millä sen koodauksen näkee luotettavasti, joten pitää selvitellä asiaa.


« Viimeksi muokattu: 17.07.06 - klo:10.39 kirjoittanut raimo »
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

Melmacian

  • Käyttäjä
  • Viestejä: 868
  • Ubuntu Hardy
    • Profiili
Re: ISO-8859-1 -> UTF-8 conversio
« Vastaus #13 : 17.07.06 - klo:11.57 »
Toi Quanta näyttää ilmeisesti koodaukseksi sen mikä siihen on oletukseksi laitettu. Millähän sen näkis luotettavasti? File ei näytä sitä.
Käsittääkseni sitä tietoa ei mitenkään liitetä tiedostoihin. Koodausta voidaan vain yrittää arvailla tiedostosta olevista merkeistä. Korjatkaa jos olen väärässä.

raimo

  • Käyttäjä
  • Viestejä: 4269
  • openSUSE Tumbleweed
    • Profiili
Re: ISO-8859-1 -> UTF-8 conversio
« Vastaus #14 : 17.07.06 - klo:12.37 »
Toi Quanta näyttää ilmeisesti koodaukseksi sen mikä siihen on oletukseksi laitettu. Millähän sen näkis luotettavasti? File ei näytä sitä.
Käsittääkseni sitä tietoa ei mitenkään liitetä tiedostoihin. Koodausta voidaan vain yrittää arvailla tiedostosta olevista merkeistä. Korjatkaa jos olen väärässä.
Onneksi ei sentään ihan arvaukseen perustu...
Googleen hassu hakusana BOM, tai mystillinen kirjainsarja EF+BB+BF
http://www.google.com/search?q=EF+BB+BF

Selvennys BOM:sta:
http://www.unicode.org/unicode/faq/utf_bom.html#BOM
« Viimeksi muokattu: 17.07.06 - klo:12.43 kirjoittanut raimo »
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Re: ISO-8859-1 -> UTF-8 conversio
« Vastaus #15 : 17.07.06 - klo:18.30 »
Käsittääkseni sitä tietoa ei mitenkään liitetä tiedostoihin. Koodausta voidaan vain yrittää arvailla tiedostosta olevista merkeistä. Korjatkaa jos olen väärässä.

tavallinen plain text filu ei kyllä sisällä mitään ylimääräistä tietoa siitä mitä koodausta sitä kirjoitettaessa on käytetty ja (valistuneeksi)arvailuksihan tuo tietty sitten menee.
Janne

raimo

  • Käyttäjä
  • Viestejä: 4269
  • openSUSE Tumbleweed
    • Profiili
Re: ISO-8859-1 -> UTF-8 conversio
« Vastaus #16 : 17.07.06 - klo:19.31 »
Tuli väkerrettyä arvailuun pieni apuri.
Saa vapaasti muokata, syödä, myydä, ostaa, tuhota, vaihtaa, jne: siis tuon alla olevan koodin.
Värkki katselee kulloisenkin hakemiston teksti-muotoiset (-T) -tiedostot merkki kerraltaan läpi.
Ja listaa "virheelliset" tiedostot lopuksi.

Koodia: [Valitse]
#!/usr/bin/perl
# IsUTF :: Simple Unicode check [isutf] 170706:raimo ihan ite ;)
# use test files below to test this program, look *1
#
#---- INSTALL:
# wget http://dash.atspace.org/kvaak/isutf.txt
# sudo cp isutf.txt /usr/bin/isutf
# sudo chmod 755 /usr/bin/isutf
#
#---- RUN:
# cd /some/dir
# isutf
#
#---- TEST files *1:
#  OK test:  wget http://www.w3.org/2001/06/utf-8-test/UTF-8-demo.html
# fail test:  wget http://www.w3.org/2001/06/utf-8-wrong/UTF-8-test.html

use strict;
my ($chr, @fails);

exit print "Unicode check\ncommand: isutf\n",
                 "checks current dir text files\n" if grep/^-h$|^help$/, @ARGV;

my @files = <$ENV{"PWD"}/*>; #all files in current dir

foreach(@files){
  next if !-T $_;            # only TEXT (-T) files
  my $err = 0;
  print "checking: $_ .. ";

   open FILE, "< $_";
    binmode FILE, ":utf8";
    my @data = <FILE>;
   close FILE;
   
  foreach $chr (split //, join('', @data)){
     $err++ if !ord($chr);
   }
   
  push(@fails, "$err $_\n") if $err > 0;    
 print "done\n";             # this file
}

 print "\nfailed files (not valid unicode):\n@fails\n" if @fails;
 print "all files OK\n" if !@fails;

exit;
#

tosin  tyhmänä sitten työntää virheilmoitusta ruudun täydeltä
jos ei mielestään löydä unkoodeja merkkejä. mutta tämä onkin eka perbeta :)
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

Owdy

  • Käyttäjä
  • Viestejä: 1954
    • Profiili
Re: ISO-8859-1 -> UTF-8 conversio
« Vastaus #17 : 17.07.06 - klo:22.05 »

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Re: ISO-8859-1 -> UTF-8 conversio
« Vastaus #18 : 17.07.06 - klo:22.12 »
Mitens tommonen? http://mirror.uta.edu/LDP/HOWTO/Finnish-HOWTO/x246.html

tuota... enkös minä tuossa jo pari viestiä sitten maininnut asiasta?
Janne

Owdy

  • Käyttäjä
  • Viestejä: 1954
    • Profiili
Re: ISO-8859-1 -> UTF-8 conversio
« Vastaus #19 : 17.07.06 - klo:22.13 »
Heh, anteeksi. Pitää varmaan mennä nukkumaan :D