Text, Unicode and encodings
Look-alike Unicode characters, Unicode blocks and emoji tables, base64 and base58 validators, and normalizers for whitespace, Unicode and personal data in free text.
11 shown here, each at the exact version the library release of October 9, 2026 serves.
What to watch for
- Cyrillic а and Latin a look the same and compare as different strings.
- A non-breaking space looks like a space and survives a plain split.
- One emoji can be several code points joined, so its length is not one.
Test packs and checks
Unicode homoglyphs mapped to their ASCII-like base characters
data.jsonUnicode homoglyphs mapped to their base (ASCII-like) characters for confusable detection: 6311 rows with a JSON Schema, a checked loader and tests.
- Rows
- 6311
- Data file
- data/data.json
Unicode blocks with start and end code points and the Unicode version that introduced them
unicode-blocks.jsonUnicode blocks with start and end code points and the Unicode version that introduced them: 346 rows with a JSON Schema, a checked loader and tests.
- Rows
- 346
- Data file
- data/unicode-blocks.json
Unicode character names of every emoji by hexadecimal code point sequence
unicode-names.jsonUnicode character names of every emoji by hexadecimal code point sequence: 3979 rows with a JSON Schema, a checked loader and tests.
- Rows
- 3979
- Data file
- data/unicode-names.json
Emoji hexcodes introduced in each Unicode version
unicode.jsonEmoji hexcodes introduced in each Unicode version: 15 rows with a JSON Schema, a checked loader and tests.
- Rows
- 15
- Data file
- data/unicode.json
base64 from validators input validation utilities
base64base64 from validators input validation utilities: Return whether or not given value is a valid base64 encoding.
- Function
- base64
- Project
- validators input validation utilities
base58 from validators input validation utilities
base58base58 from validators input validation utilities: Return whether or not given value is a valid base58 encoding.
- Function
- base58
- Project
- validators input validation utilities
ensure_unicode from xdoctest
ensure_unicodeensure_unicode from xdoctest (docstring parsing and text utilities): Casts bytes into utf8 (mostly for python2 compatibility) One tested Python function, copied with the code it needs.
- Function
- ensure_unicode
- Project
- xdoctest (docstring parsing and text utilities)
decode_url from persian
decode_urldecode_url from persian (Persian text normalisation): Decode percent-encoded Persian characters in URLs.
- Function
- decode_url
- Project
- persian (Persian text normalisation)
Normalize whitespace and Unicode in text fields
normalize_whitespace_and_unicode_textNormalize whitespace and Unicode in text fields: non-breaking spaces, tabs, doubled spaces, split accents, zero-width characters and typographic quotes.
- Files
- SKILL.md
Group byte-identical UTF-8 text records once while keeping every source reference
baltor_exact_content_groupsGroup byte-identical UTF-8 text records once while keeping every source reference and its provenance, reversibly and without merging identities or deleting anything.
- Input fields
- version, component, input
- Output fields
- version, component, output
Personal data masker for free text
personal_data_maskerReplace personal identifiers in free text (emails, web addresses, IP addresses, card numbers, phone numbers, dates, ID numbers, ZIP codes, listed names and custom patterns) with numbered placeholders and return an inventory without the values.
- Runs with
- Python 3.10 or later
- Command
python3 personal_data_masker.py < input.json
Give your agent these components
Your harness downloads them through Baltor with Pro, $49 a month. Cancel any time from your account page.
More from Corner cases
- Dates, times and time zonesIANA time zone tables with aliases, abbreviations and offsets, RFC 3339 helpers, date formats by country, and checkers for out-of-order timestamps and missed deadlines.
- Numbers, currencies and localesDecimal and group separators by locale, currency formats and their minor units, phone number formats, radix parsing and exact comparison of two proportions.
- CSV files and recordsColumn profiles, field rule checks, merges of several sources and duplicate finders for CSV records.
- Names, addresses and identifiersAddress line parsing, name capitalisation, company suffixes, email and website repair, postal code formats for 246 countries, and validators with check digits.
- JSON Schema and API requestsJSON Schema 2020-12 conformance test groups, and API request cases that each change one field of a valid request and expect exactly one validation error.
- Files, transfers and 3D exportsFile transfers in checked parts, glTF and Godot checkers that catch lost animation and joints, and conformance tools for TOML parsers, HTTP/2 servers and Matroska files.
- Deterministic skillsSkills that give the same answer every time.
- Harness toolsTools your coding agent can call.
- Data cleanup with and without BaltorWe measured library items against no item on a data cleanup task. They did not help on this test, and one item made results worse.
- Expertise for the whole teamFor a team lead who wants the same skills, tools and files available to every person and every agent on the team.
- What it is and what it costsWhat Baltor is, what stays in your environment and what it costs, for someone comparing tools before anything else.
- Harness FilesSkills, instruction files, tools, hooks and settings your harness picks up: what they are, how a harness gets them, and the setup for each harness.
- GalleryBrowse Baltor's original Godot shaders, procedural textures, meshes and Blender tools, each with the render its engine check recorded.