我有一个法语字符编码如下:
“何\ xE9e”
我需要将其转换为常规字符,因为它会在我的服务器上产生此错误:
UTF-8中无效的字节序列
我该怎么做才能解决此错误?
Rails 3 Ruby 1.9.2
答案 0 :(得分:4)
看起来像{Josée'编码在ISO 8859-1(AKA Latin-1)中。您可以使用Iconv将其转换为UTF-8:
require 'iconv'
utf_string = Iconv.conv('UTF-8', 'ISO-8859-1', "Jos\xE9e")
答案 1 :(得分:3)
使用编辑器支持utf-8,并在所有源文件的顶部添加编码行:
# coding: utf-8
如果某些输入字符串不是utf-8,请在处理前将其转换为utf-8:
input_str = "Jos\xE9e"
utf_input = input_str.force_encoding('iso-8859-1').encode('utf-8')
以上所有仅在ruby 1.9下工作。有关更多信息,请查看本书:Ruby Best Practices。
答案 2 :(得分:0)
您应该在所有源代码中使用utf8,如何以utf-8编码保存文件