将控制字符[SOH]显示为空白区域,或者在Notepad ++中显示

时间:2012-01-10 14:30:24

标签: notepad++

我正在调试/监控一个包含控制字符[SOH]
的日志文件 这使得日志几乎不可读(对我来说,在NP ++上,但是必须这样,因为这个角色在我正在监视的协议中有一些用处)

如何在NP ++上以更友好的方式显示该角色?

编辑:替换不是一个选项,因为我只想拖尾文件,而不是编辑它。

2 个答案:

答案 0 :(得分:18)

简介

Notepad ++使用Scintilla作为编辑器组件。 Scintilla有一个函数SCI_SETCONTROLCHARSYMBOL(int symbol),您可以在其中设置将用于控制字符的字符。从Scintilla Docs他们描述了功能:

  

SCI_SETCONTROLCHARSYMBOL(int symbol)

     

SCI_GETCONTROLCHARSYMBOL

     

默认情况下,Scintilla在圆角矩形中显示控制字符(代码小于32的字符)作为ASCII助记符:" NUL"," SOH"," STX&# 34;," ETX"," EOT"," ENQ","确认"," BEL",&# 34; BS"," HT"," LF"," VT"," FF"," CR&#34 ;," SO"," SI"," DLE"," DC1"," DC2",&#34 ; DC3"," DC4"," NAK"," SYN"," ETB"," CAN" ," EM"," SUB"," ESC"," FS"," GS"," RS"," US"。这些助记符来自信号的早期,尽管仍然使用了一些(例如,LF =换行,BS =后退空间,CR =回车率)。

     

您可以选择使用ASCII代码在32到255范围内的指定符号替换这些助记符。如果将符号值设置为小于32,则所有控制字符都显示为助记符。您设置的符号将以为该字符设置的样式的字体呈现。您可以使用SCI_GETCONTROLCHARSYMBOL消息回读当前符号。默认符号值为0.

可能是"对"这样做的方法,但我会给你一个非常黑客的方法来完成这个。

技术

使用除Notepad ++之外的任何内容编辑文件%APPDATA%\Notepad++\shortcuts.xml

将以下内容添加到文件的<Macros>部分,以手动添加宏:

<Macro name="RemoveControl" Ctrl="no" Alt="no" Shift="no" Key="0">
        <Action type="0" message="2388" wParam="32" lParam="0" sParam="" />
</Macro>

请注意,您可以使用CtrlAltShiftKey属性设置快捷方式。 wParam将设置将使用的字符而不是拼写的代码。在这种情况下,代码32是ASCII标准中的空格。邮件2388SCI_SETCONTROLCHARSYMBOL值的常量。

保存文件

使用

现在,您可以在运行时更改Notepad ++的行为。要使用它,请执行以下操作

打开Notepad ++ 只需打开编辑器即可。如果直接打开文件(即使用Notepad ++上下文菜单编辑),您将会遇到奇怪的行为。

从菜单(或快捷方式)激活宏。 如果有一种方法可以在启动时自动运行宏,那么最好在这里添加它

打开文件。 这里没什么新鲜的

备注

  1. 具有控制字符的位置仍将被反转(默认情况下为黑色背景上的白色文本)。
  2. 如果在打开文档时激活宏,它将不会立即生效。您必须做一些事情来强制窗口重绘。
  3. 查看Scintilla.h文件可能会打开其他可能被类似利用的选项。

答案 1 :(得分:0)

如果你想在将来选择Session Logging功能时避免使用这些字符,就像在Putty,Log&#34;可打印输出&#34;只要。这将取出所有不必要的Scintilla字符。

关于Putty(下面的缓存链接):

4.2“记录”面板

Logging配置面板允许您保存PuTTY会话的日志文件,以便进行调试,分析或将来参考。

主选项是一个单选按钮集,指定PuTTY是否会记录任何内容。选项是

+&#34;记录完全关闭&#34;。这是默认选项;在这种模式下,PuTTY根本不会创建日志文件。

+&#34;仅记录可打印输出&#34;。在此模式下,将创建并写入日志文件,但只会将可打印文本保存到其中。通常在可打印文本旁边向下发送的各种终端控制代码将被省略。如果您想在文本编辑器中读取日志文件并希望能够理解它,这可能是一种有用的模式。

+&#34;记录所有会话输出&#34;。在此模式下,将记录服务器发送到终端会话的所有内容。因此,如果您在文本编辑器中查看日志文件,您可能会发现它充满了奇怪的控制字符。如果您遇到PuTTY终端处理问题,这是一个特别有用的模式:您可以记录前往终端的所有内容,以便其他人可以稍后以慢动作重播会话并观察发生了什么问题。

+&#34;记录SSH数据包数据&#34;。在此模式(仅供SSH连接使用)中,通过加密连接发送的SSH消息数据包将写入日志文件。您可能需要这个来调试网络级问题,或者更有可能作为错误报告的一部分发送给PuTTY作者。请注意,如果您使用密码登录,密码将显示在日志文件中,因此请务必在将日志文件发送给其他人之前将其编辑出来!

LINK: http://webcache.googleusercontent.com/search?q=cache:L0M6HnWRvowJ:the.earth.li/~sgtatham/putty/0.53b/htmldoc/Chapter4.html+&cd=1&hl=en&ct=clnk&gl=us