如何替换'strange'标志?

How to replace 'strange' signs?

当我使用 vi 打开文件时,我看到以下行:

00:00:15:Co<9c> Ty!

<9c> 下隐藏了什么?我怎样才能对所有出现的这个奇怪符号进行全局替换?文件使用 UTF-8

编码

<9c>为单个字符,其值为0x9c = 十进制156;在 UTF-8 中,这是 U+009C String Terminator。您可以通过以下替代方法之一替换它:

  • 提取字符 (yl) 并通过 :help c_CTRL-R 将其插入到 :substitute 命令中::%s/<C-r>"//g
  • :substitute命令中通过十六进制值输入字符::%s/<C-v>x9c//g; cp。 :help i_CTRL-V_digit.
  • 通过:substitute命令中的特殊\%x9c正则表达式原子输入字符::%s/\%x9c//g; cp。 :help /\%x.

您的文件包含字节 0x9c,如先前在 . When a text file contains bytes in the range 0x80–0x9f, it oftentimes indicates that the file is in Windows-1252 encoding (or a different Windows code page 中针对非西欧语言环境所述。

要以 Vim 中的 Windows-1252 编码文件查看文件,请输入 :e ++encoding=windows-1252。问题中的文本随后显示为

00:00:15:Coœ Ty!

不过,我不能告诉你这是不是正确的字符。相反,如果预期的编码是 Windows-1250,对于中欧语言,命令 :e ++encoding=windows-1250 将使文本显示为

00:00:15:Coś Ty!