• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..--

src/25-Apr-2025-492230

.cargo-checksum.jsonD25-Apr-2025499 11

Android.bpD25-Apr-20251.1 KiB4843

COPYRIGHT-RUST.txtD25-Apr-202517 KiB423339

Cargo.tomlD25-Apr-2025505 1813

LICENSED25-Apr-202517 KiB423339

METADATAD25-Apr-2025382 1817

MODULE_LICENSE_APACHE2D25-Apr-20250

README.mdD25-Apr-20251.4 KiB3421

TEST_MAPPINGD25-Apr-2025294 1918

cargo_embargo.jsonD25-Apr-2025175 1110

README.md

1# CESU-8 encoder/decoder for Rust
2
3[![Build Status](https://travis-ci.org/emk/cesu8-rs.svg)](https://travis-ci.org/emk/cesu8-rs) [![Latest version](https://img.shields.io/crates/v/cesu8.svg)](https://crates.io/crates/cesu8) [![License](https://img.shields.io/crates/l/cesu8.svg)](https://crates.io/crates/cesu8)
4
5[Documentation][apidoc].
6
7[apidoc]: http://emk.github.io/cesu8-rs/cesu8/index.html
8
9Convert between ordinary UTF-8 and [CESU-8][] encodings.
10
11CESU-8 encodes characters outside the Basic Multilingual Plane as two
12UTF-16 surrogate chacaters, which are then further re-encoded as invalid,
133-byte UTF-8 characters.  This means that 4-byte UTF-8 sequences become
146-byte CESU-8 sequences.
15
16**Note that CESU-8 is only intended for internal use within tightly-coupled
17systems, and not for data interchange.**
18
19This encoding is sometimes needed when working with Java, Oracle or MySQL,
20and when trying to store emoji, hieroglyphs, or other characters on the
21Supplementary Multilingual Plane or the Supplementary Ideographic Plane.
22
23[CESU-8]: http://www.unicode.org/reports/tr26/tr26-2.html
24
25## License
26
27Some of this code is adapted from Rust's [`src/libcore/str.rs` file][str.rs].
28This code is covered by LICENSE-RUST.txt and copyright by The Rust Project
29Developers and individual Rust contributors, as described in that file.
30
31The new code in this project is distributed under the same terms.
32
33[str.rs]: https://github.com/rust-lang/rust/blob/master/src/libcore/str.rs
34