【问题标题】:Problem when decoding a list of int to utf8将 int 列表解码为 utf8 时出现问题
【发布时间】:2020-11-15 12:58:33
【问题描述】:

我有这三个来自 ascii 表的十进制字符代码列表。

[27, 91, 50, 74, 27, 91, 109, 27, 91, 72, 77, 105, 99, 114, 111, 115, 111, 102, 116, 32, 87, 105, 110, 100, 111, 119, 115, 32, 91, 86, 101, 114, 115, 105, 111, 110, 32, 49, 48, 46, 48, 46, 49, 57, 48, 52, 49, 46, 51, 56, 56, 93, 27, 93, 48, 59, 67, 58, 92, 87, 73, 78, 68, 79, 87, 83, 92, 115, 121, 115, 116, 101, 109, 51, 50, 92, 99, 111, 110, 104, 111, 115, 116, 46, 101, 120, 101, 7, 27, 91, 63, 50, 53, 104, 10]
[40, 99, 41, 32, 50, 48, 50, 48, 32, 77, 105, 99, 114, 111, 115, 111, 102, 116, 32, 67, 111, 114, 112, 111, 114, 97, 116, 105, 111, 110, 46, 32, 65, 108, 108, 32, 114, 105, 103, 104, 116, 115, 32, 114, 101, 115, 101, 114, 118, 101, 100, 46, 10]
[27, 91, 53, 50, 88, 10]

当我解码为 UTF-8 时,我有这个。

[2J[m[HMicrosoft Windows [Version 10.0.19041.388]]0;C:\WINDOWS\system32\conhost.exe[?25h
(c) 2020 Microsoft Corporation. All rights reserved.
[52X

如何避免这些特殊字符?我注意到“escape”(27) 字符导致了它。

【问题讨论】:

    标签: encoding utf-8 ascii decode encode


    【解决方案1】:

    这些是ANSI escape codes。它们控制文本终端和终端模拟器的行为和外观:例如,它们可以清除屏幕、移动光标或更改文本颜色。

    这些代码可能会变得非常复杂,尤其是在样式格式方面,但您给出的示例中的代码很容易识别并使用正则表达式删除。您无需标记编程语言,但您可以在 JavaScript 中执行此操作。

    var with_ansi_escapes = "\033[2J\033[m\033[HHello"
    
    var without_ansi_escapes = with_ansi_escapes.replace(/\033\[\d*[A-Za-z]/g, "")
    

    【讨论】:

      猜你喜欢
      • 2013-06-17
      • 1970-01-01
      • 2019-01-14
      • 2020-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-03
      • 1970-01-01
      相关资源
      最近更新 更多