将文本从 Bash shell 转换为字节?
Convert text to bytes from Bash shell?
如何使用 Bash and/or 常用 Linux 命令行实用程序将文本字符串转换为 UTF-8 编码字节?例如,在 Python 中,可以这样做:
"Six of one, ½ dozen of the other".encode('utf-8')
b'Six of one, \xc2\xbd dozen of the other'
有没有办法在纯 Bash:
STR="Six of one, ½ dozen of the other"
<utility_or_bash_command_here> --encoding='utf-8' $STR
'Six of one, \xc2\xbd dozen of the other'
Perl 来拯救!
echo "$STR" | perl -pe 's/([^x[=10=]-\x7f])/"\x" . sprintf "%x", ord /ge'
/e
修饰符允许将代码包含到 s///
替换的替换部分中,在这种情况下将 ord to hex via sprintf.
Python 救援!
alias encode='python3 -c "from sys import stdin; print(stdin.read().encode(\"utf-8\"))"'
root@kali-linux:~# echo "½ " | encode
b'\xc2\xbd \n'
此外,如果需要,您可以删除 b''
和一些 sed/awk 东西。
如何使用 Bash and/or 常用 Linux 命令行实用程序将文本字符串转换为 UTF-8 编码字节?例如,在 Python 中,可以这样做:
"Six of one, ½ dozen of the other".encode('utf-8')
b'Six of one, \xc2\xbd dozen of the other'
有没有办法在纯 Bash:
STR="Six of one, ½ dozen of the other"
<utility_or_bash_command_here> --encoding='utf-8' $STR
'Six of one, \xc2\xbd dozen of the other'
Perl 来拯救!
echo "$STR" | perl -pe 's/([^x[=10=]-\x7f])/"\x" . sprintf "%x", ord /ge'
/e
修饰符允许将代码包含到 s///
替换的替换部分中,在这种情况下将 ord to hex via sprintf.
Python 救援!
alias encode='python3 -c "from sys import stdin; print(stdin.read().encode(\"utf-8\"))"'
root@kali-linux:~# echo "½ " | encode
b'\xc2\xbd \n'
此外,如果需要,您可以删除 b''
和一些 sed/awk 东西。