2012-05-01 54 views

回答

1

擴展Jishiyu的回答,您可以使用uchardet識別字符集。例如

iconv -f `uchardet a_strange_file.txt` -t UTF-8 -o the_output_file.txt a_strange_file.txt 

雖然這不在python中完成這項工作。

0

我認爲Linux命令unix2dos,DOS2UNIX的,的iconv會很有幫助。

諸如此類

的iconv -f的Latin-1 -t UTF-8 latin.txt> utf8.txt

+0

但我需要一個Python包,自動轉換爲指定的格式。 – gsivaram

0

如果您輸入網絡獲取原始字節流le,那麼你可以decode它到utf-8。有些Python 3示例參見this blog post

enter image description here

0

我已經使用enca庫, 我用我的NAS字幕轉換爲UTF-8中創建一個自動conversion script但它可以用於任何自動轉換

隨意使用:)

編輯:

#!/bin/bash 
LANGUAGE=czech 
TO=utf8 
CONVERT="enca -L $LANGUAGE -x $TO" 

# Find and onvert 
find ./ -type f -name "*.srt" | while read fn; do 
    IS_TARGET=`enca "${fn}" | egrep -ow -m 1 'UTF-8|Unrecognized|KOI8-CS2|7bit ASCII|UCS-2|Macintosh Central European'` 

    if [ "$IS_TARGET" != "UTF-8" ] && 
     [ "$IS_TARGET" != "UCS-2" ] && 
     [ "$IS_TARGET" != "Macintosh Central European" ] && 
     [ "$IS_TARGET" != "Unrecognized" ] && 
     [ "$IS_TARGET" != "7bit ASCII" ] && 
     [ "$IS_TARGET" != "KOI8-CS2" ]; then 

     echo "${fn} ---- Will be converted!" 
    # optional backup of original srt 
     # cp "${fn}" "${fn}.bak" 
     $CONVERT "${fn}" 
    fi 

done 
+0

你應該在你的答案中包含源代碼,而不是僅僅鏈接到它。 –