停用 DCS 控制字符

停用 DCS 控制字符

文件名中的深奥字符有时会导致奇怪的错误。我最近使用 备份文件rsync,注意到在该过程几分钟后,所有状态输出都停止了。进一步调查,我发现原因是文件名中含有亚洲字符。其中一个符号具有 unicode 值0x0090,我想我的 shell 将其解释为控制字符DCS。由于后面没有相应的ST字符(值0x009C),这导致所有输出停止。完成后rsync,此后发出的所有文本都立即溢出到终端。

我已经查阅了stty手册页,但找不到在执行期间暂时消除该特殊符号功能的方法rsync。有什么办法可以停用这些角色吗?

答案1

理想情况下,rsync 应该只打印可打印字符。

如果不是这种情况,您可以通过过滤器实用程序(例如 )传输 rsync 的输出cat -v,尽管它会因缓冲而引入一些延迟。另外,我不确定cat -v是否足够聪明来捕获 UTF-8 编码的 C1 或 0x90 字节(我不清楚您遇到的是哪一个)。

相关内容