A response can look ordinary while containing code points that JSON does not treat as syntax or whitespace. This guide helps you locate suspicious characters in the exact text you copied. A match is evidence to inspect the source text; it does not by itself prove the character caused a failure.
Characters worth locating
On a phone, swipe the table horizontally to read all four columns.
| Character | Code point | Common source | What it can affect |
|---|---|---|---|
| Byte order mark | U+FEFF | Text encoding or copy/export boundary | RFC 8259 says networked JSON producers must not add a BOM; parsers may choose to ignore one at the start. Parser behavior can therefore differ. |
| Curly quotation marks | U+201C, U+201D | Rich-text editor, document, or automatic typography | JSON strings are delimited with the straight quotation mark U+0022. Curly quotes in a syntax position are not delimiters; inside a quoted JSON value they can be ordinary data. |
| Non-breaking space | U+00A0 | Web page, formatted document, or copied explanation | It is not one of JSON's four insignificant whitespace characters. Outside a string it can stop parsing; inside a string it can be data. |
| Zero-width space | U+200B | Web page, messaging app, or text conversion | It is not JSON whitespace. Outside a string it can stop parsing; inside a string it can silently change a key or value. |
| TAB with CRLF line endings | U+0009, U+000D U+000A | Indented text, Windows line endings, or a literal tab copied into a value | TAB, CR and LF are legal JSON whitespace between tokens. They are a syntax problem only inside a quoted string; CRLF line endings outside strings are valid. |
ECMA-404 lists only space, horizontal tab, line feed and carriage return as insignificant whitespace. A character detector therefore reports positions and code points; the JSON syntax check separately tells you whether the pasted input parses.
Read the local scan
- Paste the original text into the Workbench response box. It reports matching code points with 1-based line and column positions.
- Compare each location with the surrounding source in your editor. This check does not show the surrounding text, change the paste, or offer a cleanup action.
- Run the JSON inspection separately. If the syntax is valid, a reported character may be valid string data rather than the cause of a problem.
The detector runs in the page. It makes no API or model request and does not replace characters, trim text, or retry the response. Browser messages for JSON syntax errors vary; the tool reports its own stable line, column and code point values rather than parsing a browser-specific error sentence.
Keep the cause categories separate
An invisible character is not the same as a truncated response. For token-limit, missing-field or incomplete-output checks, see the incomplete JSON guide. For capture loss, preserve the status, headers and full body using the raw-response guide. Do not label either as a provider defect until you have checked the exact input and reproduced the issue.
If the local checks leave a reproducible failure, prepare a redacted report with the provider support report guide before filing a ticket.
Official references
RFC 8259 §8.1: Character Encoding
ECMA-404: The JSON Data Interchange Syntax
MDN: JSON.parse() · MDN: JSON parse errors
Official references checked 20 October 2026. Exact parse-error wording and location reporting vary among JavaScript runtimes.
Free API access and limits
Check the site free API access and limits before trying to obtain a site key. Read the current status and request limits before using a site key. It is not a source of official provider keys.
ChinaGenAI is not affiliated with the providers named here. This release contains setup guidance and explicitly labeled fictional examples, not claimed live model benchmarks.