代码之家  ›  专栏  ›  技术社区  ›  ZyX

vim,iconv+nr2char和iconv+“\x.”

  •  2
  • ZyX  · 技术社区  · 15 年前
    echo strtrans(iconv(       "\x80", "utf-8", "utf-32"))
    

    输出是什么???和

    echo strtrans(iconv(nr2char(0x80), "utf-8", "utf-32"))
    

    输出“80”。为什么?

    (zyx:~) % LANG=C vim --version
    VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Feb 12 2010 07:37:05)
    Included patches: 1-303                                          
    Modified by Gentoo-7.2.303 
    
    1 回复  |  直到 13 年前
        1
  •  2
  •   lucapette    13 年前

    因为 nr2char(0x80) 结果在 U+0080 ,等于 "\xc2\x80" . 和 "\x80" 不是有效的UTF-8字符串。