Ruby会自动检测文件的代码页吗?

Mau*_*lin 0 ruby unicode codepages

如果保存带有以下字符的文本文件,则将其? U+0431另存为ANSI代码页文件.

Ruby返回ord = 63.当代码页返回时,使用UTF-8保存文件ord = 208, 177

我应该特别告诉Ruby处理用某个代码页编码的输入吗?如果是这样,你怎么做?

sar*_*dne 5

是在ruby源代码中还是在读取的文件中File.open?如果它在ruby源代码中,你可以(在ruby 1.9中)将它添加到文件的顶部:

# encoding: utf-8
Run Code Online (Sandbox Code Playgroud)

或者你可以指定大多数其他编码(如iso-8859-1).

如果您正在阅读文件File.open,您可以这样做:

File.open("file.txt", "r:utf-8") {|f| ... }
Run Code Online (Sandbox Code Playgroud)

与编码注释一样,您也可以在此处传递不同类型的编码.