2011-12-08 32 views
1

我有一個編碼的法國字符如下:如何HTML編碼的字符更改爲ASCII字符

「喬斯\ xE9e」

我需要,因爲它產生這個錯誤將其轉換爲普通字符我的服務器:在UTF-8

我能做些什麼來解決這個錯誤

無效字節序列?

導軌3的Ruby 1.9.2

回答

4

這看起來像 「Josée」 在ISO 8859-1編碼(AKA拉丁-1)。您可以使用Iconv將其轉換爲UTF-8:

require 'iconv' 
utf_string = Iconv.conv('UTF-8', 'ISO-8859-1', "Jos\xE9e") 
0

,你應該在你的所有源代碼使用UTF-8,如何將文件保存utf8編碼

3

使用編輯器支持UTF8 ,並在所有源文件的頂部添加編碼行:

# 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。