fix: prevent special character corruption by enforcing UTF-8 in escaping #701
+11
−11
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR reduces special character and non-ASCII character rendering issues across the UI by ensuring OpenCATS consistently uses an explicit UTF-8 encoding when escaping content.
It updates several
htmlspecialchars()call sites to passHTML_ENCODINGorAJAX_ENCODINGinstead of relying on PHP defaults and ensures XML AJAX responses include an explicitcharsetin theContent-Typeheader (including early error responses inajax.php).Motivation
Special characters and other non-ASCII characters could be rendered incorrectly in multiple places (for example in activity notes), depending on server configuration (such as PHP
default_charset) and how XML responses were interpreted by the client.In these cases, escaping and XML output relied on implicit encodings. Making the encoding explicit stabilizes output across environments and helps prevent character corruption or misrendering.