Struct html5ever::encoding::codec::simpchinese::GBEncoding []

pub struct GBEncoding<T> {
    // some 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> Copy for GBEncoding<T> where T: Copy

impl<T> Clone for GBEncoding<T> where T: Clone

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> Encoding for GBEncoding<T> where T: GBType

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 + 'static>

Creates a new encoder.

fn raw_decoder(&self) -> Box<RawDecoder + 'static>

Creates a new decoder.

fn encode(&self, 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>>

Encode into a ByteWriter.

fn decode(&self, input: &[u8], trap: DecoderTrap) -> Result<StringCow<'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>>

Decode into a StringWriter. Read more