if(!data ||typeof data != "string"){return data;
}// double encode all entity values, or they will be mis-decoded// by Flash when returnedvar entityRE = /\&([^;]*)\;/g|>;
data = data.replace(entityRE, "&$1;");
// entity encode XML-ish characters, or Flash's broken XML serializer// breaks
data = data.replace(/</g, "<");
data = data.replace(/>/g, ">");
// transforming \ into \\ doesn't work; just use a custom encoding
data = data.replace("\\", "&custom_backslash;");
data = data.replace(/\0/g|>, "\\0"); // null character
data = data.replace(/\"/g, """);
return data;