日期:2014-05-16  浏览次数:20788 次

UNIX/LINUX系统如何获取字符的ASCII?
请问在UNIX/LINUX系统里面用什么命令获取到一个字母的ASCII值?如怎么获取得到'A'的ASCII;反过来,又怎么能把ASCII值转化为我们知道的字母,如65转化成'A'?
谢谢。
------解决方案--------------------
这个方法太多啦。

获取一个字符的ASCII值
$ echo "A" 
------解决方案--------------------
 tr -d "\n" 
------解决方案--------------------
 od -An -t dC
   65
$ echo "a" 
------解决方案--------------------
 tr -d "\n" 
------解决方案--------------------
 od -An -t dC
   97
$ printf "%d\n" "'A"
65
$ printf "%d\n" "'a"
97


显示相应的ASCII的字符
$ awk -v char=65 'BEGIN { printf "%c\n", char; exit }'
A
$ awk -v char=97 'BEGIN { printf "%c\n", char; exit }'
a
# 下面这个复杂一点的,用bc转换成十六进制
$ echo -e `echo "obase=16;65" 
------解决方案--------------------
bc 
------解决方案--------------------
sed 's/^\(.*\)$/\\\\x&/'`
A
# 下面用的是八进制
$ echo -e `echo "obase=8;97" 
------解决方案--------------------
bc 
------解决方案--------------------
sed 's/^\(.*\)$/\\\\0&/'`
a
# 直接用printf也可以的
$ printf "`echo "obase=8;97" 
------解决方案--------------------
bc 
------解决方案--------------------
sed 's/^\(.*\)$/\\\&/'`\n"
a






------解决方案--------------------
你不应该把问题放在“UNIX文化”这个版块。这里是非技术区来的。^_^
------解决方案--------------------
我都是查帮助的,man ascii。
------解决方案--------------------
引用:
我都是查帮助的,man ascii。
如果楼主仅仅是要知道那个值的对应,man ascii就可以了。如果是用特殊的目的,就不行了。可以尝试对man ascii输出的那个表格进行解析,获取对应的ASCII值,或者反过来。