Move OWNER reference master=>main. am: 6539b11976 am: 9f3c8314bb am: 67fdf80ee5 am: 1ce31eddd2 am: fe7d6ff58d

Original change: https://android-review.googlesource.com/c/platform/external/rust/crates/cesu8/+/2662531

Change-Id: I93c82a48065c4c8a2036f0fa285602bb48480b15
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
tree: 2c14e5646c6988e3dbb4e0f4c614ff673f4d2a22
  1. src/
  2. Android.bp
  3. Cargo.toml
  4. cargo2android.json
  5. COPYRIGHT-RUST.txt
  6. METADATA
  7. MODULE_LICENSE_APACHE2
  8. OWNERS
  9. README.md
  10. TEST_MAPPING
README.md

CESU-8 encoder/decoder for Rust

Build Status Latest version License

Documentation.

Convert between ordinary UTF-8 and CESU-8 encodings.

CESU-8 encodes characters outside the Basic Multilingual Plane as two UTF-16 surrogate chacaters, which are then further re-encoded as invalid, 3-byte UTF-8 characters. This means that 4-byte UTF-8 sequences become 6-byte CESU-8 sequences.

Note that CESU-8 is only intended for internal use within tightly-coupled systems, and not for data interchange.

This encoding is sometimes needed when working with Java, Oracle or MySQL, and when trying to store emoji, hieroglyphs, or other characters on the Supplementary Multilingual Plane or the Supplementary Ideographic Plane.

License

Some of this code is adapted from Rust's src/libcore/str.rs file. This code is covered by LICENSE-RUST.txt and copyright by The Rust Project Developers and individual Rust contributors, as described in that file.

The new code in this project is distributed under the same terms.