【发布时间】:2015-07-12 19:03:16
【问题描述】:
当我使用 vi 打开文件时,我看到以下行:
00:00:15:Co<9c> Ty!
<9c> 下隐藏了什么,我怎样才能对所有出现的这个奇怪标志进行全局替换?文件采用 UTF-8 编码
【问题讨论】:
当我使用 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。【讨论】:
:%s/\%uYYYY/substitute/g
您的文件包含字节 0x9c,如之前在 Ingo Karkat's answer 中所述。当文本文件包含 0x80–0x9f 范围内的字节时,通常表明该文件采用 Windows-1252 编码(或者对于非西欧语言环境,采用不同的 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!
【讨论】: