在linux中验证字符串是ASCII还是Non-ASCII



我有一个字符串(未保存在文件中(,它可以包含ascii或非ascii字符。我想知道给定的字符串在linux中是包含ascii还是非ascii。我在命令行中传递字符串,而NOT在文件中。我尝试使用grep,但grep需要的是文件而不是字符串。

示例1

输入

abc$@

预期输出

给定的字符串是ascii。

示例2

输入

测试标签

预期输出

给定的字符串不是ascii。

感谢你的帮助。

感谢

如果您查看ASCII表,您可能会注意到它只使用7位来对其值进行编码,尽管字符存储在一个字节中。第8位(高位(从未设置。

我会迭代字符串中的字节,并检查第8位。如果设置了任何第8位,那么它可能不是ASCII干净的。

然而,如果你在用C语言编写shell脚本和程序,你最终要做的将大不相同。这条线索似乎很有希望:https://unix.stackexchange.com/questions/194435/check-whether-text-contains-non-ascii-characters-in-a-shell-script

您可以使用file命令。此命令用于确定文件的类型。对于文本文件,它将输出编码(如果它是有效的(。

您可以将其与-b标志一起使用,以仅显示编码。

相关内容

  • 没有找到相关文章

最新更新