ruby Encoding

一. 查看ruby支持的編碼

Encoding.name_list

 

二. 搜索編碼

Encoding.find('US-ASCII') #=> US-ASCII,不存在則拋出異常

 

三. __ENCODING__

__ENCODING__ #=> UTF-8, (__ENCODING__用做建立字符串的編碼)

這裏提一下:ruby

# -*- coding:gbk -*-
__ENCODING__ #=> GBK

# -*- coding:utf-8 -*-
__ENCODING__ #=> UTF-8

源代碼文件中,若包含中文編碼,則須要注意兩點:編輯器

  • 1. 必須在首行添加 # -*- coding: UTF-8 -*-,告訴解釋器使用utf-8來解析源碼。
  • 2. 必須設置編輯器保存文件的編碼爲utf-8。

 

四.查看字符串編碼

'法海你不懂愛'.encoding #=> UTF-8

 

五. force_encoding

 
 
# -*- coding:utf-8 -*-
'法海你不懂愛'.force_encoding('gbk') #=> 娉曟搗浣犱笉鎳傜埍

注意force_encoding方法只是改變了字符串對象的編碼信息,並無改變字符串對象實際存儲的內容,這裏‘法海你不懂愛’實際是以utf-8的編碼存儲的,如今修改了他的編碼方式爲gbk,ruby就會以gbk的方式來解碼,因此最後解出來亂碼了編碼

 

六. encode、encode!

# -*- coding:utf-8 -*-
'法海你不懂愛'.encode('gbk') #=> '法海你不懂愛'
'法海你不懂愛'.encode!('gbk') #=> '法海你不懂愛'

注意encode改變了編碼信息同時也改變了字符串對象存儲的內容spa

總結

  • encdoing用來查看字符串的編碼信息
  • force_encoding用來修正字符串編碼信息,注意是修正
  • encodeencode!用來轉碼字符串

 

參考:code

Ruby 與字符編碼對象

相關文章
相關標籤/搜索