How to convert ISO8859-15 to UTF8?

后端 未结 8 2012
情歌与酒
情歌与酒 2020-12-12 18:04

I have an Arabic file encoded in ISO8859-15. How can I convert it into UTF8?
I used iconv but it doesn\'t work for me.

iconv -f ISO-8859-15          


        
相关标签:
8条回答
  • 2020-12-12 18:13

    We have this problem and to solve

    Create a script file called to-utf8.sh

    #!/bin/bash
    TO="UTF-8"; FILE=$1
    FROM=$(file -i $FILE | cut -d'=' -f2)
    if [[ $FROM = "binary" ]]; then
     echo "Skipping binary $FILE..."
     exit 0
    fi
    iconv -f $FROM -t $TO -o $FILE.tmp $FILE; ERROR=$?
    if [[ $ERROR -eq 0 ]]; then
      echo "Converting $FILE..."
      mv -f $FILE.tmp $FILE
    else
      echo "Error on $FILE"
    fi
    

    Set the executable bit

    chmod +x to-utf8.sh
    

    Do a conversion

    ./to-utf8.sh MyFile.txt
    

    If you want to convert all files under a folder, do

    find /your/folder/here | xargs -n 1 ./to-utf8.sh
    

    Hope it's help.

    0 讨论(0)
  • 2020-12-12 18:21

    Iconv just writes the converted text to stdout. You have to use -o OUTPUTFILE.txt as an parameter or write stdout to a file. (iconv -f x -t z filename.txt > OUTPUTFILE.txt or iconv -f x -t z < filename.txt > OUTPUTFILE.txt in some iconv versions)

    Synopsis
    
    iconv -f encoding -t encoding inputfile
    
    Description
    
    The iconv program converts the encoding of characters in inputfile from one coded character set to another. 
    **The result is written to standard output unless otherwise specified by the --output option.**
    
    --from-code, -f encoding
    
    Convert characters from encoding
    
    --to-code, -t encoding
    
    Convert characters to encoding
    
    --list
    
    List known coded character sets
    
    --output, -o file
    
    Specify output file (instead of stdout)
    
    --verbose
    
    Print progress information.
    
    0 讨论(0)
  • 2020-12-12 18:23

    I got the same problem, but i find the answer in this page! it works for me, you can try it.

    iconv -f cp936 -t utf-8 
    
    0 讨论(0)
  • 2020-12-12 18:29

    in my case, the file command tells a wrong encoding, so i tried converting with all the possible encodings, and found out the right one.

    execute this script and check the result file.

    for i in `iconv -l`
    do
       echo $i
       iconv -f $i -t UTF-8 yourfile | grep "hint to tell converted success or not"
    done &>/tmp/converted
    
    0 讨论(0)
  • 2020-12-12 18:34

    Could it be that your file is not ISO-8859-15 encoded? You should be able to check with the file command:

    file YourFile.txt

    Also, you can use iconv without providing the encoding of the original file:

    iconv -t UTF-8 YourFile.txt

    0 讨论(0)
  • 2020-12-12 18:36

    You can use ISO-8859-9 encoding:

    iconv -f ISO-8859-9 Agreement.txt -t UTF-8 -o agreement.txt
    
    0 讨论(0)
提交回复
热议问题