Sha*_*mer 385
听起来像你在寻找enca.它可以猜测甚至在编码之间进行转换.只需看一下手册页.
或者,如果失败,请使用file -i(linux)或file -I(osx).这将输出文件的MIME类型信息,其中还包括字符集编码.我也找到了一个人工页面 :)
小智 75
file -bi <file name>
Run Code Online (Sandbox Code Playgroud)
如果你喜欢为一堆文件做这个
for f in `find | egrep -v Eliminate`; do echo "$f" ' -- ' `file -bi "$f"` ; done
Run Code Online (Sandbox Code Playgroud)
qwe*_*003 31
uchardet - 从Mozilla移植的编码检测器库.
用法:
~> uchardet file.java
UTF-8
Run Code Online (Sandbox Code Playgroud)
各种Linux发行版(Debian/Ubuntu,OpenSuse-packman,...)提供二进制文件.
not*_*bit 10
在 Debian 中,您还可以使用encguess:
$ encguess test.txt
test.txt US-ASCII
Run Code Online (Sandbox Code Playgroud)
这是一个使用文件-I和iconv的示例脚本,适用于MacOsX对于您的问题,您需要使用mv而不是iconv
#!/bin/bash
# 2016-02-08
# check encoding and convert files
for f in *.java
do
encoding=`file -I $f | cut -f 2 -d";" | cut -f 2 -d=`
case $encoding in
iso-8859-1)
iconv -f iso8859-1 -t utf-8 $f > $f.utf8
mv $f.utf8 $f
;;
esac
done
Run Code Online (Sandbox Code Playgroud)
小智 9
要将编码从 ISO 8859-1 转换为 ASCII:
iconv -f ISO_8859-1 -t ASCII filename.txt
Run Code Online (Sandbox Code Playgroud)
使用此命令:
for f in `find .`; do echo `file -i "$f"`; done
Run Code Online (Sandbox Code Playgroud)
您可以列出目录和子目录中的所有文件以及相应的编码。
如果文件名称中包含空格,请使用:
IFS=$'\n'
for f in `find .`; do echo `file -i "$f"`; done
Run Code Online (Sandbox Code Playgroud)
请记住,它会将您当前的 Bash 会话解释器更改为“空格”。
很难确定它是否是iso-8859-1.如果你的文本只有7位字符,也可能是iso-8859-1,但你不知道.如果您有8位字符,那么上面区域字符也存在于顺序编码中.因此,您必须使用字典来更好地猜测它是哪个单词,并从那里确定它必须是哪个字母.最后,如果你发现它可能是utf-8而不是你确定它不是iso-8859-1
编码是最困难的事情之一,因为你永远都不知道是否有什么东西告诉你
| 归档时间: |
|
| 查看次数: |
416877 次 |
| 最近记录: |