UnQTools
Developer Runs in your browser

Edge-Case / Naughty String Generator

Browse, filter, and export a curated library of 200+ naughty edge-case test strings — the Big List of Naughty Strings plus Unicode, emoji, RTL/bidi overrides, zalgo, SQL injection, XSS payloads, control chars, zero-width, null bytes, boundary values, and more. Categorized, searchable, seed-reproducible random sampling, and one-click export to JSON, CSV, Playwright, Jest, or pytest fixtures. 100% client-side, defensive QA use only.

100% Private Works Offline Instant

About Edge-Case / Naughty String Generator

Browse, filter, and export a curated library of 200+ naughty edge-case test strings — the Big List of Naughty Strings plus Unicode, emoji, RTL/bidi overrides, zalgo, SQL injection, XSS payloads, control chars, zero-width, null bytes, boundary values, and more. Categorized, searchable, seed-reproducible random sampling, and one-click export to JSON, CSV, Playwright, Jest, or pytest fixtures. 100% client-side, defensive QA use only. Everything runs locally in your browser — your data never leaves your device.

How to use

  1. Enter your input in the tool above.
  2. Adjust any options to your preference.
  3. Use the Copy or Download buttons to save the result.
  4. Everything happens locally — your data never leaves your browser.

FAQ

What's in the naughty-string library?

200+ curated strings in 12 categories: reserved keywords, special characters, control characters, zero-width / BOM, Unicode (Greek, Cyrillic, CJK, Arabic, etc.), emoji (including ZWJ sequences and modifier pairs), RTL/bidi overrides, zalgo, SQL injection, XSS / script injection, Unicode numbers, and boundary values (empty, whitespace, huge, max int, etc.).

Why are SQL injection and XSS payloads included?

Strictly for defensive QA of your own systems. The payloads are well-known — they appear in OWASP cheat sheets, the BLNS repo, and security textbooks. Use them to verify that your forms, parsers, and APIs correctly escape, parameterize, and reject dangerous input. Never run these against systems you don't own or have permission to test.

Which export formats are supported?

Plain text (one per line), JSON array, CSV (category,value), Playwright fixture (test.describe with test.each), Jest fixture (describe.each), and pytest fixture (parametrize). Each export preserves category metadata so your test reports show which category a failing string came from.

Can I generate random samples from the library?

Yes. Set a count and an optional seed (mulberry32 PRNG) and we sample that many strings — either across all categories or from a chosen subset. The same seed always produces the same sample, so test runs are reproducible.

What extra features does this tool have versus the raw BLNS repo?

(1) 200+ curated strings in 12 categorized buckets. (2) Per-category filter checkboxes. (3) Free-text search across both value and description. (4) Custom Unicode-range generator (enter start/end code points). (5) Boundary-value generator (empty, whitespace, huge, max int, surrogate pairs, BOM). (6) Seeded random sampling (mulberry32). (7) One-click export to plain text, JSON, CSV, Playwright, Jest, and pytest fixtures. (8) Per-string copy chip. (9) localStorage history (max 20). (10) Shareable config URL (fragment-encoded, never sent to server). (11) Defensive-use banner. (12) 100% client-side, fully offline.

Search tools and actions

Search across all 616 tools, categories, and quick actions.