我无法设置文件的编码,一直出现错误。我已经尝试了所有方法:
C:\ruby\sbox>ruby -W3 -Eex=utf-8 gserver.rb text.txt
ruby: unknown encoding name - ex=utf-8 (RuntimeError)
C:\ruby\sbox>ruby -W3 -Eex=utf8 gserver.rb text.txt
ruby: unknown encoding name - ex=utf8 (RuntimeError)
C:\ruby\sbox>ruby -W3 -Eex:utf8 gserver.rb text.txt
ruby: unknown encoding name - ex (RuntimeError)
C:\ruby\sbox>ruby -W3 -Eex=>utf8 gserver.rb text.txt
ruby: unknown encoding name - ex= (RuntimeError)
C:\ruby\sbox>ruby -W3 -Eex=>utf-8 gserver.rb text.txt
ruby: unknown encoding name - ex= (RuntimeError)
C:\ruby\sbox>ruby -W3 -Eexutf-8 gserver.rb text.txt
ruby: unknown encoding name - exutf-8 (RuntimeError)
C:\ruby\sbox>ruby -W3 -Eex"utf-8" gserver.rb text.txt
ruby: unknown encoding name - exutf-8 (RuntimeError)
C:\ruby\sbox>ruby -W3 -Eex="utf-8" gserver.rb text.txt
ruby: unknown encoding name - ex=utf-8 (RuntimeError)
如何设置此选项?
This reference没有-Eex
选项。
UPD:
我已经学会了。无需打印ex
。只需-Eutf-8:cp866
C:\ruby\sbox>ruby -W3 -Eutf-8:cp866 gserver.rb text.txt
答案 0 :(得分:2)
尝试添加“魔术评论”'位于文件顶部:
# encoding: UTF-8
答案 1 :(得分:2)
还有-K
选项,对我来说似乎比-E
选项更好。它将设置内部(脚本)和外部编码。 ruby(1)手册页指出:
-K kcode
Specifies KANJI (Japanese) encoding. The default value for
script encodings ("__ENCODING__") and external encodings
("Encoding.default_external") will be the specified one. kcode
can be one of
e EUC-JP
s Windows-31J (CP932)
u UTF-8
n ASCII-8BIT (BINARY)
要运行我的wiki,我使用:
$ ruby -Ku wiki.rb
我的ruby wiki源文件都是ASCII,但有时当我从网上复制并粘贴到我的wiki时,有些字符是UTF-8。如果不设置-K
选项,我会得到" ArgumentError - US-ASCII中的无效字节序列"对于我wiki的某些页面。
但是
$ ruby -Eutf-8 wiki.rb
也有效。