如何通过 Regex 和 XSLT 转义/翻译 Encoding/chars?
How to escape/ translate Encoding/chars via Regex and XSLT?
我需要一些帮助来解决这些编码被输出为特殊字符的问题 xml.I我正在尝试执行 powershell 脚本以通过服务器上的 SSH 连接使用平台创建证书并且它的预期响应是一个干净的 xml 形式但不幸的是这个特殊字符问题是 happening.I 可能需要做一个 xslt 和正则表达式作为解决 xml:
<output>
<line index="1">(B)0[?7l[H[J[3;1H Directory: D:\Certificatesdev[6;1HMode </line>
<line index="2">[24;1H [24;1H-----------------------------------------------------------------------------[24;1H</line>
<line index="3">[24;1H [24;1HSign Certificate: Successful[24;1H</line>
<line index="4">[24;1H [24;1H-----------------------------------------------------------------------------[24;1H</line>
<line index="5">[24;1H [24;1HEvent Summary:[24;1H</line>
<line index="6">[24;1H [24;1H*Generate Sign Certificate File: Passed[24;1H</line>
<line index="7">[24;1H [24;1H</line>
<line index="8">[24;1H [23;1HGenerated D:\Certificatesdev\Folder\test.com-20150511-210523.[24;1Hcer[24;1H</line>
<line index="9">[24;1H [24;1H*Get Actual Certificate Expiry Date: Passed[24;1H</line>
<line index="10">[24;1H [24;1H*Copy to Shared Folder: Passed[24;1H</line>
<line index="11">[24;1H [24;1H</line>
<line index="12">[24;1H [23;1HFile Location: D:\Certificatesdev\Folder\test.com-20150511-21[24;1H0523[24;1H</line>
<line index="13">[24;1H [24;1H*Add to Certificate DB: Successful[24;1H</line>
<line index="14">[24;1H [24;1HCertificate Automation Completed Successfully[24;1H</line>
<line index="15">[24;1H [24;1H</line>
<line index="16">[24;1H [24;1H</line>
<line index="17">[24;1H [24;1H[?7h</line>
</output>
请注意,额外的空格也不是预期的。我不太确定这是哪种编码。
请帮忙。谢谢
我是来自 Bitvise 的 denis bider。我注意到这一点,因为我了解您在连接到 WinSSHD 或 Bitvise SSH 服务器版本时遇到的问题。
如果我没理解错的话,您连接到 SSH 服务器是为了从中接收 XML 类型的文件。看起来您连接到 SSH 服务器和检索数据的方式使用 exec 请求或终端 shell 会话。
问题似乎是当您在客户端接收数据时,您期望的是纯数据流,但您收到的却是终端转义序列。这似乎是因为您的 SSH 客户端在连接到服务器时请求终端仿真。
解决此问题的最佳方法是:
更改 SSH 客户端参数,使其在连接到服务器时不请求终端(例如 vt100 或 xterm),或者改为请求 "dumb" 终端类型;
或者,如果 SSH 客户端的类型不允许更改被请求的终端,则 SSH 服务器支持允许您强制其使用 "dumb" 终端类型(无转义序列),无论客户端请求什么。
如果您希望通过服务器端设置更改此设置,您可以在 SSH 服务器设置中找到它,在包含此用户设置的帐户或组设置条目中。设置的名称是 "Always use 'dumb' pseudo terminal".
我需要一些帮助来解决这些编码被输出为特殊字符的问题 xml.I我正在尝试执行 powershell 脚本以通过服务器上的 SSH 连接使用平台创建证书并且它的预期响应是一个干净的 xml 形式但不幸的是这个特殊字符问题是 happening.I 可能需要做一个 xslt 和正则表达式作为解决 xml:
<output>
<line index="1">(B)0[?7l[H[J[3;1H Directory: D:\Certificatesdev[6;1HMode </line>
<line index="2">[24;1H [24;1H-----------------------------------------------------------------------------[24;1H</line>
<line index="3">[24;1H [24;1HSign Certificate: Successful[24;1H</line>
<line index="4">[24;1H [24;1H-----------------------------------------------------------------------------[24;1H</line>
<line index="5">[24;1H [24;1HEvent Summary:[24;1H</line>
<line index="6">[24;1H [24;1H*Generate Sign Certificate File: Passed[24;1H</line>
<line index="7">[24;1H [24;1H</line>
<line index="8">[24;1H [23;1HGenerated D:\Certificatesdev\Folder\test.com-20150511-210523.[24;1Hcer[24;1H</line>
<line index="9">[24;1H [24;1H*Get Actual Certificate Expiry Date: Passed[24;1H</line>
<line index="10">[24;1H [24;1H*Copy to Shared Folder: Passed[24;1H</line>
<line index="11">[24;1H [24;1H</line>
<line index="12">[24;1H [23;1HFile Location: D:\Certificatesdev\Folder\test.com-20150511-21[24;1H0523[24;1H</line>
<line index="13">[24;1H [24;1H*Add to Certificate DB: Successful[24;1H</line>
<line index="14">[24;1H [24;1HCertificate Automation Completed Successfully[24;1H</line>
<line index="15">[24;1H [24;1H</line>
<line index="16">[24;1H [24;1H</line>
<line index="17">[24;1H [24;1H[?7h</line>
</output>
请注意,额外的空格也不是预期的。我不太确定这是哪种编码。 请帮忙。谢谢
我是来自 Bitvise 的 denis bider。我注意到这一点,因为我了解您在连接到 WinSSHD 或 Bitvise SSH 服务器版本时遇到的问题。
如果我没理解错的话,您连接到 SSH 服务器是为了从中接收 XML 类型的文件。看起来您连接到 SSH 服务器和检索数据的方式使用 exec 请求或终端 shell 会话。
问题似乎是当您在客户端接收数据时,您期望的是纯数据流,但您收到的却是终端转义序列。这似乎是因为您的 SSH 客户端在连接到服务器时请求终端仿真。
解决此问题的最佳方法是:
更改 SSH 客户端参数,使其在连接到服务器时不请求终端(例如 vt100 或 xterm),或者改为请求 "dumb" 终端类型;
或者,如果 SSH 客户端的类型不允许更改被请求的终端,则 SSH 服务器支持允许您强制其使用 "dumb" 终端类型(无转义序列),无论客户端请求什么。
如果您希望通过服务器端设置更改此设置,您可以在 SSH 服务器设置中找到它,在包含此用户设置的帐户或组设置条目中。设置的名称是 "Always use 'dumb' pseudo terminal".