Data comes as double url-encoded during update

I’m using dataProcessor with PHP connector in 4.2 suite.
When data is loaded it comes as CDATA wrapped without url encoding like this:

But when I update columns the request goes like this:

which updates 7th column as “cityId=458416&position=6”
And I don’t want this to happen

My dataProcessor is set up like this:

myDP.setTransactionMode("POST",true); // set mode as send-all-by-post
myDP.setUpdateMode("off"); // disable auto-update

GridConnector is set like this:

$gridConn = new GridConnector($sql,“MySQL”);
$gridConn->render_sql(“SELECT * FROM dov WHERE server=‘$server’ ORDER BY status ASC,general DESC”,“id”,“login,pass,address,address_login,type,status,general,embassy,ondov”);// data configuration

Is there any way I can fix this?

Also, when I try to edit data in a grid it also shows it as url-encoded but it view mode it is not.
So, it seems like data is url-encoded fist time during load and then second time when it is sent to the server

And another observation: double encoding happens with “&”, “>”, “<” characters. All the rest special character like “@”,"%","?", etc are not encoded when I enter them into the grid

Try to use “pure text” column type for the problematic data in the grid

rotxt, edtxt, txttxt - those column types will preserve special chars without double-escaping.