2

我无法为文件设置编码,总是出错。我已经尝试了所有方法:

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)

如何设置此选项?

此参考没有-Eex选项。

升级版:

我已经学会了。不需要打印那个ex。只是-Eutf-8:cp866

C:\ruby\sbox>ruby -W3 -Eutf-8:cp866 gserver.rb text.txt
4

2 回答 2

3

还有一个-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选项,我的 wiki 的某些页面会出现“ ArgumentError - US-ASCII 中的无效字节序列”。

$ ruby -Eutf-8 wiki.rb

也有效。

于 2014-09-20T23:49:03.167 回答
2

尝试在文件顶部添加“魔术评论”:

# encoding: UTF-8
于 2013-02-27T20:08:36.517 回答