有可以将文本转换为 ASCII 的在线工具,例如这个。是否有可能在 Ubuntu/Linux 中做同样的事情?
例如
Input data: abc
Output as ASCII: 097 098 099
我有一些数据保存在名称中包含非 ascii 字符的目录中,如何访问其中的数据?
目录显示为:
w0p6_t[[0.53.5]?[1.71.2]]
但是在特殊字符\
之前使用它们转义是行不通的,也不会像这里建议的那样用引号将目录名称括起来。
我相信这个“?” 是一个换行符(ascii \012
)作为ls -lb
返回:
w0p7_t[[0.53.5]\n[1.71.2]]
我可以使用tree
命令查看目录的内容,该命令将目录显示为:
w0p6_t[[0.53.5]\012[1.71.2]]
连同它的所有内容。
我也试过:
cd "w0p7_t[[0.53.5]\n[1.71.2]]"
cd "w0p7_t[[0.53.5]\012[1.71.2]]"
和
cd w1p0_t\[\[0.53.5]\\012\[1.71.2\]\]
cd w1p0_t\[\[0.53.5]\\n\[1.71.2\]\]
没有成功。
此外,尝试自动完成命令 usingTab不会提示对该目录的建议。
我想列出目录中的所有文件并对其进行排序,这些文件是 ASCII 文本文件,但不一定具有 .txt 扩展名。我怎样才能做到这一点?我是 shell 脚本的新手。
我已经安装aview
了 ASCII 艺术图像查看器:
sudo apt-get install aview
但是现在当我运行它时:
aview /path/to/image.extension
我明白了:
Invalid magic-not p?m family format
到目前为止,我已经尝试让它与以下图像格式一起使用,并且仍然是相同的输出:png
、、jpg
和bmp
。
为什么会这样?我该如何解决这个问题,或者aview
如果我用错了如何正确使用?
操作系统信息:
Description: Ubuntu 14.10
Release: 14.10
包装信息:
aview:
Installed: 1.3.0rc1-9
Candidate: 1.3.0rc1-9
Version table:
*** 1.3.0rc1-9 0
500 http://gb.archive.ubuntu.com/ubuntu/ utopic/universe amd64 Packages
100 /var/lib/dpkg/status
我试过figlet,但效果不是很好。还有其他 ASCII 编辑器吗?
我有很多来自 Windows 环境的纯文本文件。
他们中的许多人使用古怪的默认 Windows 代码页,既不是 ASCII(7 位)也不是 UTF-8。
gvim打开这些文件没有问题,但gedit不能这样做。
gvim将编码报告为latin1。
我假设gvim正在对代码页做出“智能”假设。
(我相信这个代码页仍然有国际变体)。
一些问题由此产生:
(1)。有什么方法可以告诉gedit识别这个代码页吗?
**注意。[更新] 对于这一点 (1),请参阅下面的我的回答。
** 对于第 (2) 和 (3) 点。见奥利的回答。
(2)。有没有办法扫描文件系统来识别这些问题文件?
(3)。是否有批量转换工具将这些文件转换为 UTF-8?
(.. 这个旧世界的文本混乱实际上是把我带到 Ubuntu 的最后一根稻草......默认情况下 UTF-8 系统范围Brilliant)
[更新]
**注意: **我现在认为以下更新部分无关紧要,因为“问题”文件不是“问题”(请参阅下面的答案)。
我把它留在这里,因为它可能对某人有一些一般用途。
我已经制定了一种粗略且现成的方法来识别问题文件...
该file
命令不合适,因为它将我的示例文件识别为 ASCII...但是 ASCII 文件是 100% UTF-8 兼容...
正如我在下面的评论中提到的,对 UTF-8 代码点 的无效第一个字节的测试是:
我知道sed
(有点,通过 Win32 端口),所以我设法拼凑了一个 RegEx 模式,它可以找到这些违规字节。
这是一条丑陋的线,所以如果正则表达式吓到你,请立即移开视线 :)
如果有人指出如何在范围 []表达式中使用十六进制值,我将不胜感激。我刚刚使用了or运算符\|
fqfn="/my/fully/qualified/filename"
sed -n "/\x80\|\x81\|\x82\|\x83\|\x84\|\x85\|\x86\|\x87\|\x88\|\x89\|\x8A\|\x8B\|\x8C\|\x8D\|\x8E\|\x8F\|\x90\|\x91\|\x92\|\x93\|\x94\|\x95\|\x96\|\x97\|\x98\|\x99\|\x9A\|\x9B\|\x9C\|\x9D\|\x9E\|\x9F\|\xA0\|\xA1\|\xA2\|\xA3\|\xA4\|\xA5\|\xA6\|\xA7\|\xA8\|\xA9\|\xAA\|\xAB\|\xAC\|\xAD\|\xAE\|\xAF\|\xB0\|\xB1\|\xB2\|\xB3\|\xB4\|\xB5\|\xB6\|\xB7\|\xB8\|\xB9\|\xBA\|\xBB\|\xBC\|\xBD\|\xBE\|\xBF\|\xF8\|\xF9\|\xFA\|\xFB\|\xFC\|\xFD\|\xFE\|\xFF/p" "${fqfn}"
所以,我现在将其移植到Oli 的批处理解决方案中......谢谢 Oli!
PS。这是它在我的示例文件中找到的无效 UTF-8 字节……
“H.Bork,Gøte-borg。” ... "ø" = F8 hex ...这是一个无效的 UTF-8 字符。