相关疑难解决方法(0)

如何将 U+xxxxx 代码指定的表情符号转换为 utf-8?

表情符号似乎使用 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

  • 在某个网页上找到该符号
  • 将其复制到网络浏览器的剪贴板
  • 将其粘贴到 bash 中以通过十六进制转储回显以发现真正的代码。

我可以使用这个 20 位代码来确定 32 位代码是什么吗?

这两个数字之间是否存在关系?

shell character-encoding unicode

19
推荐指数
3
解决办法
7694
查看次数

如果实现终端仿真器,要支持什么类型的终端?

我听说VT100是事实上的标准。这是否意味着我可以只支持 VT100,然后我的终端就可以在现有的命令行应用程序中运行而不会出现大问题?如果没有,如何确保该终端实用?是否有任何参考资料可以帮助实现这一目标?

terminal-emulator terminal

2
推荐指数
1
解决办法
873
查看次数

Bash 在特定传入请求后显示乱码

我设置了一个新的基本 Linux 服务器(在本例中为 CentOS),仅用于测试目的。在那里,没有任何防火墙,我正在运行 Python Web 应用程序。基本上,我python run.py在前台输入并让应用程序运行,而应用程序本身在类似 的某个端口上运行8080,因此在 Web 浏览器中,我只需输入my_public_ip_addr:8080并使用它就好了。所有这一切都通过我的笔记本电脑上的 SSH 发生。

现在,我让我的笔记本电脑打开了一段时间,当我回来时,外壳显示如下内容:

83.20.238.86 - - [13/Mar/2019 08:54:43] "GET / HTTP/1.1" 200 -
87.122.83.97 - - [13/Mar/2019 11:55:30] "GET / HTTP/1.1" 200 -
176.32.33.145 - - [13/Mar/2019 12:08:36] "GET / HTTP/1.1" 200 -
176.32.33.145 - - [13/Mar/2019 12:08:36] code 400, message Bad request syntax ('\x16\x03\x01\x00\xfc\x01\x00\x00\xf8\x03\x03(\xd3FM\xf5\x0eLo\x17\xa3|\x1f8\xca~#\x07\xc1\x1f&&\x14\x19\x11\x10:\x824\xd23nA\x00\x00\x8c\xc00\xc0,\xc02\xc0.\xc0/\xc0+\xc01\xc0-\x00\xa5\x00\xa3\x00\xa1\x00\x9f\x00\xa4\x00\xa2\x00\xa0\x00\x9e\xc0(\xc0$\xc0\x14\xc0')
176.32.33.145 - - [13/Mar/2019 12:08:36] "??(M?L???8#?&&:?4?A??????2???/???1???????????(?$??" 4?? ?
176?32?33?145 ? ? [13/M??/2?19 14:55:55] "GET / HTTP/1?1" 2?? ? …
Run Code Online (Sandbox Code Playgroud)

bash string http

1
推荐指数
1
解决办法
261
查看次数