本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。