我最近发现了这个历史文档,它旨在作为对显示它的任何应用程序的 UTF-8 编码的测试。
\n\n当我将它粘贴到我的终端(iterm2)时,它会漂亮地加载最后的方框图(除了右下角的几个):
\n\n\n\n但在 Chrome 和 Firefox 中,它们都是歪曲的,而且明显是错误的:
\n\n\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所以看起来浏览器仍然做错了什么。
\nyaml.load在Python浮动时加载数字。我找不到一种简单的方法来替代此方法。
Compare json.load,它允许parse_float=Decimal您是否要将浮点数解析为decimal.Decimals。
有什么办法可以用PyYAML做到这一点?还是不建议使用YAML规范的某些属性?
根据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)