表情符号似乎使用 U+xxxxx 格式指定,
其中每个 x 是一个十六进制数字。
例如,U+1F615是“困惑的脸”的官方 Unicode Consortium 代码
由于我经常感到困惑,我对这个符号有很强的亲和力。
该U + 1F615表示是混淆我,因为我认为有可能为Unicode字符的唯一编码所需的8,16,24或32位,而5个十六进制数字需要5×4 = 20比特。
我发现这个符号在 bash 中似乎由一个完全不同的十六进制字符串表示:
$echo -n | hexdump
0000000 f0 9f 98 95
0000004
$echo -e "\xf0\x9f\x98\x95"
$PS1=$'\xf0\x9f\x98\x95 >'
>
Run Code Online (Sandbox Code Playgroud)
我本来希望U+1F615转换为类似\x00 \x01 \xF6 \x15 的东西。
我没有看到这两种编码之间的关系?
当我在官方 Unicode Consortium 列表中查找符号时,我希望能够直接使用该代码,而不必以这种繁琐的方式手动转换它。IE
我可以使用这个 20 位代码来确定 32 位代码是什么吗?
这两个数字之间是否存在关系?
我正在尝试在 Linux 上设置 IP6tables 防火墙,我基本上想开始复制我的 IPv4 配置。
我的规则之一只是接受到本地主机子网的所有流量:
iptables -A INPUT -s 127.0.0.0/8 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
尽管 IPv6 的等价物是什么,但我有点困惑。是不是就这么简单:
ip6tables -A INPUT -s ::/128 -m comment --comment localhost -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
互联网上的许多来源解释了 127.0.0.1,但我专门寻找 127.0.0.0/8 等效项,但我还没有找到确认。
顺便说一句ip6tables -vnL,当我发出以下命令时,我希望计数器增加:
telnet -6 localhost 22
Run Code Online (Sandbox Code Playgroud)
但这不会发生。
我开始在我的 Debian Jessie 服务器上添加一些基本的 iptables 规则。我的目标是过滤和记录网络流量(出于安全和学习目的)。不考虑 ICMP 数据包,这些是我正在使用的规则:
# INPUT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
# OUTPUT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A OUTPUT …Run Code Online (Sandbox Code Playgroud)