Nic*_*son 1 ruby vim encoding utf-8 character-encoding
我有一个只有这两行的ruby文件:
# encoding: utf-8
puts "—"
Run Code Online (Sandbox Code Playgroud)
当我运行ruby test_enc.rb它失败时:
test_enc.rb:2: invalid multibyte char (UTF-8)
test_enc.rb:2: unterminated string meets end of file
Run Code Online (Sandbox Code Playgroud)
我不知道如何正确指定—(emdash)的字符代码,但vim告诉我它是151, Hex 97, Octal 227.它也与其他角色一样失败ã,所以我怀疑它与该角色有特殊关系.我在Windows XP上运行,我正在使用的ruby版本是:
ruby 1.9.1p430 (2010-08-16 revision 28998) [i386-mingw32]
Run Code Online (Sandbox Code Playgroud)
我觉得这里有一些非常明显的东西.有任何想法吗?
编辑:今天学到了关于假设的宝贵教训 - 特别是假设你的编辑使用UTF-8而没有实际检查它.哎呀!
感谢所有快速准确的回复!
再次编辑: "为utf-8正确设置vim"变得太大了,并且与这个问题无关,所以它现在是一个单独的问题.
鉴于Ruby明确地提醒您注意UTF-8,我强烈怀疑您实际上还没有写出一个UTF-8文件.确保Vim(或用于创建文件的任何文本编辑器)确实设置为写出UTF-8.
请注意,在UTF-8中,任何非ASCII字符都将由多个字节表示,而不是您从Vim诊断中描述的单个字节.我建议使用二进制文件编辑器(或转储,或其他)来真正显示文本文件中的内容.有些东西还没有一些先入为主的编码概念 - 甚至没有把它想象成文本文件.
记事本可以让你用UTF-8写出一个文件,所以你可能想尝试一下,看看会发生什么.(我自己没有安装Ruby,否则我会为你试试.)
| 归档时间: |
|
| 查看次数: |
5612 次 |
| 最近记录: |