如何替换'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!
当我使用 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,如先前在
要以 Vim 中的 Windows-1252 编码文件查看文件,请输入 :e ++encoding=windows-1252
。问题中的文本随后显示为
00:00:15:Coœ Ty!
不过,我不能告诉你这是不是正确的字符。相反,如果预期的编码是 Windows-1250,对于中欧语言,命令 :e ++encoding=windows-1250
将使文本显示为
00:00:15:Coś Ty!