JSON_UNESCAPED_UNICODE option in json_encode does not unescape some control characters
Open
Nobody has claimed this yet.
Extension: json
good first issue
- Dominant language
- XML
- Stars
- 596
- Forks
- 890
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 55
Description
Description
The following code:
<?php
var_dump(json_encode("\x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19", JSON_UNESCAPED_UNICODE));
Resulted in this output:
string(133) ""\u0000 \u0001 \u0002 \u0003 \u0004 \u0005 \u0006 \u0007 \b \t \u0010 \u0011 \u0012 \u0013 \u0014 \u0015 \u0016 \u0017 \u0018 \u0019""
But I don't expect to see Unicode escape sequences
PHP Version
PHP 8.3.0
Operating System
No response
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the documentation entry for json_encode and JSON_UNESCAPED_UNICODE, then verify the reported PHP 8.3.0 output against the documented option behavior. Done means the documentation clearly explains which control characters remain escaped and records a confirmed correction if needed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- documentation
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100