本文简要介绍ruby语言中 Encoding::Converter.new
的用法。
用法
Encoding::Converter.new(source_encoding, destination_encoding)
Encoding::Converter.new(source_encoding, destination_encoding, opt)
Encoding::Converter.new(convpath)
可能的选项元素:
hash form: :invalid => nil # raise error on invalid byte sequence (default) :invalid => :replace # replace invalid byte sequence :undef => nil # raise error on undefined conversion (default) :undef => :replace # replace undefined conversion :replace => string # replacement string ("?" or "\uFFFD" if not specified) :newline => :universal # decorator for converting CRLF and CR to LF :newline => :crlf # decorator for converting LF to CRLF :newline => :cr # decorator for converting LF to CR :universal_newline => true # decorator for converting CRLF and CR to LF :crlf_newline => true # decorator for converting LF to CRLF :cr_newline => true # decorator for converting LF to CR :xml => :text # escape as XML CharData. :xml => :attr # escape as XML AttValue integer form: Encoding::Converter::INVALID_REPLACE Encoding::Converter::UNDEF_REPLACE Encoding::Converter::UNDEF_HEX_CHARREF Encoding::Converter::UNIVERSAL_NEWLINE_DECORATOR Encoding::Converter::CRLF_NEWLINE_DECORATOR Encoding::Converter::CR_NEWLINE_DECORATOR Encoding::Converter::XML_TEXT_DECORATOR Encoding::Converter::XML_ATTR_CONTENT_DECORATOR Encoding::Converter::XML_ATTR_QUOTE_DECORATOR
Encoding::Converter.new
创建 Encoding::Converter
的实例。
Source_encoding 和 destination_encoding
应该是字符串或 Encoding
对象。
opt 应为 nil、散列或整数。
convpath 应该是一个数组。 convpath 可能包含
-
包含编码或编码名称的二元素数组,或
-
表示装饰器名称的字符串。
Encoding::Converter.new
可选地采用一个选项。该选项应该是散列或整数。选项哈希可以包含 :invalid => nil 等。选项整数应该是 logical-or 的常量,例如 Encoding::Converter::INVALID_REPLACE
等。
- :invalid => 无
-
在无效字节序列上引发错误。这是默认行为。
- :invalid =>:replace
-
用替换字符串替换无效的字节序列。
- :undef => 无
-
如果
source_encoding
中的字符未在 destination_encoding 中定义,则会引发错误。这是默认行为。 - :undef =>:替换
-
用替换字符串替换
destination_encoding
中的未定义字符。 - :replace => 字符串
-
指定替换字符串。如果未指定,“uFFFD” 用于 Unicode 编码,“?” 用于其他编码。
- :universal_newline => 真
-
将 CRLF 和 CR 转换为 LF。
- :crlf_newline => 真
-
将 LF 转换为 CRLF。
- :cr_newline => 真
-
将 LF 转换为 CR。
- :xml =>:文本
-
转义为 XML CharData。此表单可用作 HTML 4.0 PCDATA。
-
‘&’ -> ‘&’
-
‘<’ -> ‘<’
-
‘>’ -> ‘>’
-
destination_encoding
中的未定义字符 -> 十六进制 CharRef 例如 <s
-
- :xml =>:attr
-
转义为 XML AttValue。转换后的结果引用为“…”。此表单可用作 HTML 4.0 属性值。
-
‘&’ -> ‘&’
-
‘<’ -> ‘<’
-
‘>’ -> ‘>’
-
‘“’ -> ‘”’
-
destination_encoding
中的未定义字符 -> 十六进制 CharRef 例如 <s
-
例子:
# UTF-16BE to UTF-8
ec = Encoding::Converter.new("UTF-16BE", "UTF-8")
# Usually, decorators such as newline conversion are inserted last.
ec = Encoding::Converter.new("UTF-16BE", "UTF-8", :universal_newline => true)
p ec.convpath #=> [[#<Encoding:UTF-16BE>, #<Encoding:UTF-8>],
# "universal_newline"]
# But, if the last encoding is ASCII incompatible,
# decorators are inserted before the last conversion.
ec = Encoding::Converter.new("UTF-8", "UTF-16BE", :crlf_newline => true)
p ec.convpath #=> ["crlf_newline",
# [#<Encoding:UTF-8>, #<Encoding:UTF-16BE>]]
# Conversion path can be specified directly.
ec = Encoding::Converter.new(["universal_newline", ["EUC-JP", "UTF-8"], ["UTF-8", "UTF-16BE"]])
p ec.convpath #=> ["universal_newline",
# [#<Encoding:EUC-JP>, #<Encoding:UTF-8>],
# [#<Encoding:UTF-8>, #<Encoding:UTF-16BE>]]
相关用法
- Ruby Converter.primitive_errinfo用法及代码示例
- Ruby Converter.convert用法及代码示例
- Ruby Converter.inspect用法及代码示例
- Ruby Converter.insert_output用法及代码示例
- Ruby Converter.search_convpath用法及代码示例
- Ruby Converter.last_error用法及代码示例
- Ruby Converter.primitive_convert用法及代码示例
- Ruby Converter.putback用法及代码示例
- Ruby Converter.replacement用法及代码示例
- Ruby Converter.replacement =用法及代码示例
- Ruby Converter.finish用法及代码示例
- Ruby Converter.convpath用法及代码示例
- Ruby Converter.asciicompat_encoding用法及代码示例
- Ruby Context.save_history=用法及代码示例
- Ruby Constants模块用法及代码示例
- Ruby Continuation类用法及代码示例
- Ruby Context.echo_on_assignment?用法及代码示例
- Ruby Config.get_value用法及代码示例
- Ruby Context.echo?用法及代码示例
- Ruby Context.echo_on_assignment用法及代码示例
- Ruby Config.to_s用法及代码示例
- Ruby Constructive类用法及代码示例
- Ruby Constructive.each用法及代码示例
- Ruby Context.auto_indent_mode用法及代码示例
- Ruby ConditionVariable类用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Converter.new。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。