You could use an ASCII-only version of Douglas Crockford's json2.js quote function. Which would look like this:
var escapable = /["x00-x1fx7f-uffff]/g,
meta = { // table of character substitutions
'': '\b',
'': '\t',
'
': '\n',
'f': '\f',
'
': '\r',
'"' : '"',
'\': '\\'
};
function quote(string) {
// If the string contains no control characters, no quote characters, and no
// backslash characters, then we can safely slap some quotes around it.
// Otherwise we must also replace the offending characters with safe escape
// sequences.
escapable.lastIndex = 0;
return escapable.test(string) ?
'"' + string.replace(escapable, function (a) {
var c = meta[a];
return typeof c === 'string' ? c :
'\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
}) + '"' :
'"' + string + '"';
}
This will produce a valid ASCII-only, javascript-quoted of the input string
e.g. quote("Doppelg?nger!")
will be "Doppelgu00e4nger!"
To revert the encoding you can just eval the result
var encoded = quote("Doppelg?nger!");
var back = JSON.parse(encoded); // eval(encoded);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…