ToolJovia
Text

Exact Text Offset Coordinate Workbench

Migrate declared text ranges between UTF-8 byte, UTF-16 code-unit and Unicode scalar coordinates with exact quotes and boundary checks.

✓ Browser-local processing

Loading tool…

How to use Exact Text Offset Coordinate Workbench

Move text annotation ranges between systems that count positions differently. The same emoji occupies one scalar, two UTF-16 units and four UTF-8 bytes. This workbench converts only valid original boundaries, preserves the source exactly and records all three coordinate pairs for each range.

  1. Paste the exact original text and range IDs with their current start/end positions.
  2. Choose the source and target coordinate units and run the local boundary check.
  3. Inspect quotes and the source hash, then download converted evidence without changing the source text.

Good to know

  • One well-formed Unicode text of at most 20,000 UTF-16 characters and 200 unique-ID JSON ranges. Ranges use zero-based inclusive start and exclusive end; empty caret ranges are allowed. Original JSON numbers must be exact integers before conversion to a JavaScript number.
  • Offsets inside a UTF-8 sequence or UTF-16 surrogate pair are refused. Scalar boundaries can still split a grapheme such as a combining sequence; no grapheme snapping or Unicode normalization is attempted.
  • No BOM insertion/removal, newline conversion, changed-document anchor repair or visual/bidirectional reordering occurs. UTF-8 counts the exact entered scalar sequence. JSON includes original text, quotes, all-unit boundaries and its UTF-8 SHA256; review privacy before sharing.
  • CSV protects formula-like strings. Downloaded data is a custom coordinate evidence profile, not an automatic migration of an external annotation database or every annotation format.
  • Processing is local. Output is limited to 1,000,000 text characters unless a stricter file limit is stated.

Common questions

Why is my byte or JavaScript index refused?

The index can fall in the middle of a multibyte UTF-8 sequence or UTF-16 surrogate pair. This tool refuses that boundary instead of guessing which character you intended. Select a complete scalar boundary and check the source hash before reusing converted offsets.

Is this input sent to a server?

No. The application processes this input inside your browser tab and does not save it to persistent storage.

Keep going with related tools

All text →