小编jsh*_*arp的帖子

unicode box-drawing 在浏览器中无法正确呈现

我最近发现了这个历史文档,它旨在作为对显示它的任何应用程序的 UTF-8 编码的测试。

\n\n

当我将它粘贴到我的终端(iterm2)时,它会漂亮地加载最后的方框图(除了右下角的几个):

\n\n

正确渲染 unicode 框绘图

\n\n

但在 Chrome 和 Firefox 中,它们都是歪曲的,而且明显是错误的:

\n\n

错误渲染的 unicode 框绘图

\n\n

似乎差异与渲染字符的宽度有关:例如“\xe2\x95\xb2”在我的终端中显示与其他字符(例如“a”)一样宽,但在浏览器中它显示更宽。

\n\n

这是一个深思熟虑的选择吗?如果是的话,是什么启发了它?如果没有,哪里是提交错误的正确位置?

\n\n

编辑

\n\n

感谢Tom Blodget 的回答,我现在意识到字体是一个重要的考虑因素。我会澄清:

\n\n

在上面的屏幕截图中,Firefox 和 Chrome 使用 Courier 作为等宽字体,而终端使用 Monaco。在这两种情况下,字体似乎对方框图字符的应用与对 ASCII 字符的应用一样多:当我更改字体时,绘图的外观以及周围文本的外观都会发生变化。

\n\n

当我将终端切换到 Courier 或 Courier New 时,它同样可以很好地显示包装盒图纸 - 在某些方面更好!

\n\n

当我将任一浏览器切换到摩纳哥时,它仍然显示错误的方框图,同样是由于字符明显以比等宽宽度更宽的宽度显示。

\n\n

所以看起来浏览器仍然做错了什么。

\n

browser unicode utf-8

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

pyyaml加载数为十进制

yaml.load在Python浮动时加载数字。我找不到一种简单的方法来替代此方法。

Compare json.load,它允许parse_float=Decimal您是否要将浮点数解析为decimal.Decimals。

有什么办法可以用PyYAML做到这一点?还是不建议使用YAML规范的某些属性?

python yaml pyyaml

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

ssh bash -c 退出状态不会传播

根据man ssh之前的答案,ssh 应该传播它在远程服务器上运行的任何进程的退出状态。我似乎发现了一个令人费解的例外!

$ ssh myserver exit 34 ; echo $?
34
Run Code Online (Sandbox Code Playgroud)

好的...

$ ssh myserver 'exit 34' ; echo $?
34
Run Code Online (Sandbox Code Playgroud)

好的...

$ ssh myserver bash -c 'exit 34' ; echo $?
0
Run Code Online (Sandbox Code Playgroud)

什么?!?

$ ssh myserver
ubuntu@myserver $ bash -c 'exit 34' ; echo $?
34
Run Code Online (Sandbox Code Playgroud)

所以问题似乎不是 ssh 或bash -c孤立的问题,但它们的组合并不像我预期的那样。

我正在设计一个在远程计算机上运行的脚本,该脚本需要采用在客户端计算的参数列表。为了便于论证,假设如果任何参数不是远程服务器上的文件,则它会失败:

ssh myserver bash -c '
    for arg ; do
        if [[ ! -f "$arg" ]] ; then
            exit 1
        fi
    done …
Run Code Online (Sandbox Code Playgroud)

ssh bash

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

标签 统计

bash ×1

browser ×1

python ×1

pyyaml ×1

ssh ×1

unicode ×1

utf-8 ×1

yaml ×1