I'm working on an app that grabs some html off of a page and using Ajax puts the html into a database. The problem I'm having is that when a url in the html contains an ampersand the html is cutoff at that point, like:

<a title="mysite" href="mysite.com.php?id=1&?day=2">hello</a>


<a title="mysite" href="mysite.com.php?id=1"></a>

Is there a good way to deal with this? Javascript's escape seems to be one workaround but then I need to unescape using php before the code gets put into the db.

Also, the amount of html I'm sticking into a db is fairly large(about 2000 lines) and it's actual structure changes outside of my control.

Here's the javascript Ajax code:
function createXMLHttpRequest(){
  try{ return new ActiveXObject("Msxml2.XMLHTTP");} catch(e){}
  try{ return new ActiveXObject("Microsoft.XMLHTTP");} catch(e){}
  try{ return new XMLHttpRequest();} catch(e){}
  alert("ajax not supported");
  return null;

function sendBody(){
  var bod = document.getElementsByTagName("body")[0];
  var innerBod = bod.innerHTML;
  var params = "bod=" + innerBod;
  var xhr=createXMLHttpRequest();
  xhr.onreadystatechange = function(){
        bod.innerHTML = xhr.responseText;
  xhr.open("POST", "process.php", true);
  xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xhr.setRequestHeader("Content-length", params.length);
  xhr.setRequestHeader("Connection", "close");