Struct encoding::codec::simpchinese::GBEncoding
[−]
[src]
pub struct GBEncoding<T> { /* fields omitted */ }
GBK and GB 18030-2005.
The original GBK 1.0 region spans [81-FE] [40-7E 80-FE]
, and is derived from
several different revisions of a family of encodings named "GBK":
- GBK as specified in the normative annex of GB 13000.1-93, the domestic standard equivalent to Unicode 1.1, consisted of characters included in Unicode 1.1 and not in GB 2312-80.
- Windows code page 936 is the widespread extension to GBK.
- Due to the popularity of Windows code page 936, a formal encoding based on Windows code page 936 (while adding new characters) was standardized into GBK 1.0.
- Finally, GB 18030 added four-byte sequences to GBK for becoming a pan-Unicode encoding, while adding new characters to the (former) GBK region again.
GB 18030-2005 is a simplified Chinese encoding which extends GBK 1.0 to a pan-Unicode encoding. It assigns four-byte sequences to every Unicode codepoint missing from the GBK area, lexicographically ordered with occasional "gaps" for codepoints in the GBK area. Due to this compatibility decision, there is no simple relationship between these four-byte sequences and Unicode codepoints, though there exists a relatively simple mapping algorithm with a small lookup table.
Specialization
This type is specialized with GBType T
,
which should be either GBK
or GB18030
.
Trait Implementations
impl<T: Clone> Clone for GBEncoding<T>
[src]
fn clone(&self) -> GBEncoding<T>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more
impl<T: Copy> Copy for GBEncoding<T>
[src]
impl<T: GBType> Encoding for GBEncoding<T>
[src]
fn name(&self) -> &'static str
Returns the canonical name of given encoding. This name is guaranteed to be unique across built-in encodings, but it is not normative and would be at most arbitrary. Read more
fn whatwg_name(&self) -> Option<&'static str>
Returns a name of given encoding defined in the WHATWG Encoding standard, if any. This name often differs from name
due to the compatibility reason. Read more
fn raw_encoder(&self) -> Box<RawEncoder>
Creates a new encoder.
fn raw_decoder(&self) -> Box<RawDecoder>
Creates a new decoder.
fn encode(&self,
input: &str,
trap: EncoderTrap)
-> Result<Vec<u8>, Cow<'static, str>>
input: &str,
trap: EncoderTrap)
-> Result<Vec<u8>, Cow<'static, str>>
An easy-to-use interface to RawEncoder
. On the encoder error trap
is called, which may return a replacement sequence to continue processing, or a failure to return the error. Read more
fn encode_to(&self,
input: &str,
trap: EncoderTrap,
ret: &mut ByteWriter)
-> Result<(), Cow<'static, str>>
input: &str,
trap: EncoderTrap,
ret: &mut ByteWriter)
-> Result<(), Cow<'static, str>>
Encode into a ByteWriter
.
fn decode(&self,
input: &[u8],
trap: DecoderTrap)
-> Result<String, Cow<'static, str>>
input: &[u8],
trap: DecoderTrap)
-> Result<String, Cow<'static, str>>
An easy-to-use interface to RawDecoder
. On the decoder error trap
is called, which may return a replacement string to continue processing, or a failure to return the error. Read more
fn decode_to(&self,
input: &[u8],
trap: DecoderTrap,
ret: &mut StringWriter)
-> Result<(), Cow<'static, str>>
input: &[u8],
trap: DecoderTrap,
ret: &mut StringWriter)
-> Result<(), Cow<'static, str>>
Decode into a StringWriter
. Read more