#text #unicode-encoding #charset-encoding #unicode #charset

textcode

Text encoding/decoding library. Supports: UTF-8, ISO6937, ISO8859, GB2312

6 releases

0.2.2 May 2, 2022
0.2.1 Nov 3, 2020
0.1.2 Apr 24, 2020
0.1.1 Dec 23, 2019
0.1.0 Nov 18, 2019

#591 in Text processing

Download history 340/week @ 2025-07-27 371/week @ 2025-08-03 350/week @ 2025-08-10 209/week @ 2025-08-17 188/week @ 2025-08-24 294/week @ 2025-08-31 256/week @ 2025-09-07 237/week @ 2025-09-14 426/week @ 2025-09-21 252/week @ 2025-09-28 278/week @ 2025-10-05 357/week @ 2025-10-12 280/week @ 2025-10-19 271/week @ 2025-10-26 170/week @ 2025-11-02 140/week @ 2025-11-09

889 downloads per month
Used in 10 crates (4 directly)

MIT license

445KB
7.5K SLoC

textcode

docs

Intro

textcode is a library for text encoding/decoding. Supports next charsets:

  • UTF-8
  • iso-6937 - Latin superset of ISO/IEC 6937 with Euro and letters with diacritics
  • iso-8859-1 - Western European
  • iso-8859-2 - Central European
  • iso-8859-3 - South European
  • iso-8859-4 - North European
  • iso-8859-5 - Cyrillic
  • iso-8859-6 - Arabic
  • iso-8859-7 - Greek
  • iso-8859-8 - Hebrew
  • iso-8859-9 - Turkish
  • iso-8859-10 - Nordic
  • iso-8859-11 - Thai
  • iso-8859-13 - Baltic Rim
  • iso-8859-14 - Celtic
  • iso-8859-15 - Western European
  • iso-8859-16 - South-Eastern European
  • gb2312 - Simplified Chinese

Example:

use textcode::iso8859_5;

const UTF8: &str = "Привет!";
const ISO8859_5: &[u8] = &[0xbf, 0xe0, 0xd8, 0xd2, 0xd5, 0xe2, 0x21];

let mut dst: Vec<u8> = Vec::new();
iso8859_5::encode(UTF8, &mut dst);
assert_eq!(dst.as_slice(), ISO8859_5);

let mut dst = String::new();
iso8859_5::decode(ISO8859_5, &mut dst);
assert_eq!(UTF8, dst.as_str());

No runtime deps