[TYPO3-core] RFC #8264: "+" (plus) signs are replaced by spaces
Tobias Liebig
liebig at networkteam.com
Fri Jun 6 09:56:21 CEST 2008
This is an SVN patch request.
Type: Bugfix
Bugtracker references:
http://bugs.typo3.org/view.php?id=8264
Branches:
4.2, Trunk
Problem/Background:
Posts in Ajax.requests (prototype) are always UTF-8 encoded, but they
are expected to be encoded like the backend is (iso-8859-1 by default).
This caused special chars to get mixed up (happes in shortcut menu and
in the t3editor)
I an earlier patch i introduce a workaround for this charset problem. In
this patch i had replaced the javascript function "encodeURIcomponent"
by "escape". Now the special char gets encoded correctly, but all "+"
became " " (space) when sending them by Ajax.request to the server.
(This is because a "+" means " " (space) in url encoding, and "escape"
does not handle this)
Because of this issue the t3editor now uses the new
"ajax.php/class.typo3ajax.php" instead of sending the content directly
to tstemplate/ts/index.php. So the workaround "encodeURIcomponent =
escape" should be removed from the javascript.
With the patch for #8591 the "ajax.php/class.typo3ajax.php" detects the
content charset of the ajax request and convert all post/get to the
charset used for the backend.
How to test/some test cases:
open a setup or constants in the t3editor
type some code
use some special chars and +
save the code by clicking the save icon or hit CTRL-S
scroll down and click "edit whole record"
check if all special chars are ok
the saving procedure is completely rewritten, so you should test also:
if saving works correct if you have more than one template on one page
(mutible +ext templates)
saving different templates on different pages
disable the t3editor and save the code (e.g. with special chars again)
Note:
This patch really depends on the patch for #8591
Do not test/commit without it.
More information about the TYPO3-team-core
mailing list