1

如何在 Python 中将带有 CRLF 行终止符的非 ISO 扩展 ASCII 英文文本转换为 utf-8

4

4 回答 4

1

扩展 Jishiyu's Answer,您可以使用uchardet来识别字符集。例如

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

虽然这在 python 中不起作用。

于 2013-12-05T14:31:42.370 回答
0

我认为linux命令unix2dos、dos2unix、iconv会有所帮助。</p>

像这样

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

于 2012-05-01T07:26:46.643 回答
0

如果您获得输入文件的原始字节流,则可以将decode其转换为utf-8. 请参阅此博客文章以及一些 Python 3 示例。

在此处输入图像描述

于 2012-05-01T08:23:54.497 回答
0

我使用enca库创建了一个自动转换脚本,我在我的 NAS 上使用它来将字幕转换为 UTF-8,但它可以用于任何自动转换

随意使用:)

编辑:

#!/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
于 2016-08-29T12:27:10.453 回答