如何通过 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".