unicode-text-correctness

Enforce grapheme-aware string operations, NFC normalization, and full case-folding.

9|3|Updated Jun 13, 2026
One-click install
npx skills add https://github.com/Sir-chawakorn/sanook-cli --skill unicode-text-correctness
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: unicode-text-correctness
Source: https://github.com/Sir-chawakorn/sanook-cli/tree/main/skills/unicode-text-correctness
Command: npx skills add https://github.com/Sir-chawakorn/sanook-cli --skill unicode-text-correctness

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill resolves pervasive text-handling bugs where applications fail to correctly process, store, or display complex Unicode characters like emojis, combining marks, and non-Latin scripts.

Core Features & Use Cases

  • Grapheme-Aware Processing: Correctly counts, slices, and reverses strings containing multi-codepoint characters like family emojis or accented letters.
  • Normalization & Comparison: Ensures consistent data storage and comparison by enforcing NFC normalization and full case-folding, preventing duplicate entries and identity mismatches.
  • Security & Integrity: Defends against homoglyph spoofing, bidi-override attacks, and double-encoding mojibake in identifiers and user-facing text.

Quick Start

Use the unicode-text-correctness skill to audit and fix the string truncation logic in the user profile module to ensure emoji and accented characters are handled as single grapheme clusters.

Frequently Asked Questions about unicode-text-correctness

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fix mojibake and double-encoding issues in user profile text storage?

Fix mojibake by enforcing NFC Unicode normalization, which standardizes text composition to prevent identity mismatches and duplicate database entries across multi-lingual datasets.

Why does my string truncation break emojis and accented characters?

String truncation breaks emojis and accented characters when operations are codepoint-based rather than grapheme-aware, incorrectly splitting multi-codepoint sequences like family emojis or combining marks into invalid fragments.

What is grapheme-aware string processing and when do I need it?

Grapheme-aware string processing correctly counts, slices, and reverses strings containing multi-codepoint characters, ensuring user-perceived characters remain intact during manipulation of emoji-rich or non-Latin script datasets.

How do I prevent homoglyph spoofing and bidi-override attacks in user-facing text?

Prevent homoglyph spoofing and bidi-override attacks by implementing Unicode confusable detection and strict adherence to Unicode Standard Annexes for segmentation, ensuring data integrity and security in identifiers.

Does Unicode case-folding require NFC normalization for accurate identity comparison?

Yes, applying full case-folding alongside NFC normalization ensures consistent data storage, preventing duplicate entries and identity mismatches when comparing multi-lingual and emoji-rich text datasets.

What are the limitations of using basic string functions for multi-lingual text processing?

Basic string functions fail on multi-lingual text by ignoring grapheme clusters and Unicode Standard Annexes, leading to broken display, incorrect sorting, and security vulnerabilities from unnormalized or spoofed identifiers.