如何确定文件中的替代空格字符

时间:2013-12-04 21:28:50

标签: vim text character-encoding

在我的网络应用程序中,我处理数据提要,并在索引单词之前按空格(和其他关键标记)拆分单词。

我的一个文件有一个奇怪的空格字符,我的关键标记列表没有捕获它,这意味着我无法正确处理该文件的那一部分。

如果我查看vi中的文件,有问题的文字如下:

"SKS Shockboard Front QR Mudguard"

然而,最后一个空格不是常规空格,我可以通过运行:%s/\ /_/g看到它。该文字成为:

"SKS_Shockboard_Front_QR Mudguard"

我需要确定最终的空白字符是什么。我怎么能这样做?

由于

2 个答案:

答案 0 :(得分:3)

如果你想使用vim,你可以将光标移动到有问题的角色上,然后按ga显示角色的ascii值。

ga的帮助复制如下。

:as[cii]        or                                      ga :as :ascii
ga                      Print the ascii value of the character under the
                        cursor in decimal, hexadecimal and octal.  For
                        example, when the cursor is on a 'R':
                                <R>  82,  Hex 52,  Octal 122
                        When the character is a non-standard ASCII character,
                        but printable according to the 'isprint' option, the
                        non-printable version is also given.  When the
                        character is larger than 127, the <M-x> form is also
                        printed.  For example:
                                <~A>  <M-^A>  129,  Hex 81,  Octal 201
                                <p>  <|~>  <M-~>  254,  Hex fe,  Octal 376
                        (where <p> is a special character)
                        The <Nul> character in a file is stored internally as
                        <NL>, but it will be shown as:
                                <^@>  0,  Hex 00,  Octal 000
                        If the character has composing characters these are
                        also shown.  The value of 'maxcombine' doesn't matter.
                        Mnemonic: Get Ascii value.  {not in Vi}

答案 1 :(得分:1)

如果您使用的是Mac,则可以使用xxd工具查看每个字符的十六进制表示(即编码):

/usr/bin/xxd file.txt

然后在非空格空格的位置找到十六进制表示,并在unicode.org上查找。

(另外,如果你经常需要这样做并想留在vim中,你可能会寻找“HexMode”代码,或者直接使用xxd,如下所述:http://www.kevssite.com/2009/04/21/using-vi-as-a-hex-editor/。)< / p>