在VIM中将unicode作为十六进制

use*_*584 0 unicode vim hex

我正在阅读关于unicode的这篇文章 - http://www.linuxjournal.com/content/unicode

为了更好地理解这个概念,在VIM中我保存了unicode字符'ഒ'U+ 0D12.当我切换到十六进制模式(使用:%!xxd命令)时,我看到以下内容:

0000000:e0b4 920a ....

\ 0a是结尾\n.但其他十六进制值对我没有任何意义.任何人都可以对此有所了解吗?

rom*_*inl 5

  • U+0D12 是un的unicode代码点.
  • E0 B4 92 是以UTF-8编码的三个字节的十六进制表示.
  • xxd 不知道或不关心unicode代码点,所以它默认执行它应该做的事情:它显示你给它的每个字节的十六进制值.

如果你很好奇,ga在Vim中点击会以各种格式显示光标下的字符值:

<?> 3346, Hex 0d12, Octal 6422
Run Code Online (Sandbox Code Playgroud)

g8显示其十六进制值:

e0 b4 92
Run Code Online (Sandbox Code Playgroud)

如果您非常好奇,请:%!xxd -b显示这些字节的二进制值:

11100000 10110100 10010010
Run Code Online (Sandbox Code Playgroud)