ruby Encoding
一. 查看ruby支持的编码
Encoding.name_list
二. 搜索编码
Encoding.find('US-ASCII') #=> US-ASCII,不存在则抛出异常
三.__ENCODING__
__ENCODING__ #=> UTF-8, (__ENCODING__用作创建字符串的编码)
这里提一下:
# -*- coding:gbk -*- __ENCODING__ #=> GBK # -*- coding:utf- -*- __ENCODING__ #=> UTF-8
源代码文件中,若包含中文编码,则需要注意两点:
- 1. 必须在首行添加# -*- coding: UTF-8 -*-,告诉解释器使用utf-8来解析源码。
- 2. 必须设置编辑器保存文件的编码为utf-8。
四.查看字符串编码
'法海你不懂爱'.encoding #=> UTF-8
五. force_encoding
<span># -*- coding:utf-8 -*-
'法海你不懂爱'.force_encoding('gbk') #=> 娉曟捣浣犱笉鎳傜埍
注意:force_encoding方法只是改变了字符串对象的编码信息,并没有改变字符串对象实际存储的内容,这里‘法海你不懂爱’实际是以utf-8的编码存储的,现在修改了他的编码方式为gbk,ruby就会以gbk的方式来解码,所以最后解出来乱码了
六.encode、encode!
# -*- coding:utf- -*- '法海你不懂爱'.encode('gbk') #=> '法海你不懂爱' '法海你不懂爱'.encode!('gbk') #=> '法海你不懂爱'
注意:encode改变了编码信息同时也改变了字符串对象存储的内容
总结
- encdoing用来查看字符串的编码信息。
- force_encoding用来修正字符串编码信息,注意是修正。
- encode,encode!用来转码字符串。
相关推荐
wwwdownmacom 2020-09-14
一一空 2020-06-25
zhendeshifeng 2020-05-25
RuoShangM 2020-05-17
liangzuojiayi 2020-05-07
DCXabc 2020-05-05
横云断岭 2020-04-17
wangqing 2020-04-07
Lomoyou 2020-02-17
绝望的乐园 2020-02-15
ChainDestiny 2020-02-02
codeAB 2019-12-31
idning 2019-12-30
JingLisen 2019-12-30
xiangnan0 2019-12-23
yongzhang 2019-12-19