拳头,这个问题的背景有些无关:
所以我为PHP写了an advanced variable dumper,现在可以检测到什么时候在CLI中启动脚本,并且如果客户端支持它会添加一些视觉效果(putty screenshot):
颜色很漂亮,但我现在对格式化更感兴趣。我正在使用以下七个UTF8符号来实现此目的:
┌ ─ ┐
│
└ ▄ ┘
但是,在不同的计算机上通过相同的SSH连接凭据启动相同的脚本 输出此混乱:
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â $t â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
array (1) [
integer 123
]
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
â
Called from APP/shell/cron/test.php:8
我是一个完整的unix noob并且不确定调试信息有多少会有用,但是正确的显示在WIN8.1上,而错误的显示在WIN7上。另外,在油灰中:
uname -a
Linux [removed] 2.6.32-431.29.2.el6.x86_64 #1 SMP Tue Sep 9 21:36:05 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
这会导致什么?是否有解决方法或者我可以通过shell命令检测UTF8支持(在这种情况下回退到ASCII符号)?
我很感激任何输入,我可以尝试的任何想法 - 我不想再使用有限的ASCII设置恢复格式化。
显示的字符取决于客户端的putty设置,如here所示。所以,由于午夜指挥官在配置错误的客户端时可以买得起一些文物,我也是如此。我所做的唯一改变就是将▄
字符替换为═
,这样就不会在代码片段中引起新的行以上。固定输出看起来像这样(第一个是正确的,utf-8语言设置):
答案 0 :(得分:1)
[编辑] 关于serverfault的这个问题应该有所帮助:https://serverfault.com/questions/475925/how-to-fix-putty-showing-garbled-characters
我不知道为什么Windows 8.1与Windows 7的工作方式不同。我对这类问题的第一个猜测是编码被搞乱,但由于你在两台Windows机器上使用相同的命令,它应该在两者上都失败或者无。
下一个罪魁祸首通常是字体,但是,对于未知符号,你会得到一个空心框而不是â
。
接下来我要尝试的是一种解决方法。我没有在Unix端进行格式化,而是创建了一个服务器脚本,它只是以内部格式(CSV,XML,JSON,...)向我发送变量及其值。然后我会写一个脚本来查询这些值并在本地格式化它们。这样,格式化程序可以检查本地系统,确定其功能并做正确的事情。