你无法真正检测到编码.你只能假设它.
对于大多数西方语言应用程序,以下构造将起作用.传统的编码通常是"ISO-8859-1".新的和首选的编码是UTF-8.为什么不简单地尝试使用UTF-8对其进行编码并使用旧编码进行回退
def detect_encoding( str )
begin
str.encode("UTF-8")
"UTF-8"
rescue
"ISO-8859-1"
end
end
Run Code Online (Sandbox Code Playgroud)
从字符串中分辨它是什么编码是不可能的.你总是需要一些额外的元数据来告诉你字符串的编码是什么.
如果从Web获取字符串,则该元数据位于HTTP标头中.如果HTTP标头错误,那么您或Ruby或其他任何人都无法做到.您需要向网站管理员提交错误信息,并等待他修复它.如果您与网站签订了服务级别协议,请提交错误,等待一周,然后起诉他们.
| 归档时间: |
|
| 查看次数: |
12455 次 |
| 最近记录: |