在Response.Write中转义单引号

时间:2015-07-13 13:37:19

标签: c# asp.net

我不是Asp.Net开发人员,但我碰巧在代码库的JavaScript方面工作,其中也有一些简单的Asp.Net。我需要在设置JavaScript对象属性之前转义动态文本:

Text: '<% =_serviceMessageText %>'

我尝试使用HttpUtility.JavaScriptStringEncode但它没有用,实际上并没有真正得到我应该从中得到的东西。我想知道是否有任何简单的方法来逃避单引号,可能避免使用正则表达式。

注意:实际文本已经编码,因此单引号存储为&#39;,但检索时表示为实际单引号字符,导致JavaScript解析错误。

更新

也许我应该将JavaScript更改为:

Text: "<% =_serviceMessageText %>"

并使用Server.HTMLEncode来避免双引号?

1 个答案:

答案 0 :(得分:1)

是的,你是对的;使用双引号var urls = [ 'yufegi.jpg', 'duck.jpg' ]; var images = []; var counter = 0; // From http://stackoverflow.com/questions/6150289/how-to-convert-image-into-base64-string-using-javascript function convertImgToBase64URL(url, callback, outputFormat){ var img = new Image(); img.crossOrigin = 'Anonymous'; img.onload = function(){ var canvas = document.createElement('CANVAS'), ctx = canvas.getContext('2d'), dataURL; canvas.height = this.height; canvas.width = this.width; ctx.drawImage(this, 0, 0); dataURL = canvas.toDataURL(outputFormat); callback(dataURL, url); canvas = null; }; img.src = url; } function createArchive(images){ // Use jszip var zip = new JSZip(); var img = zip.folder("images"); for (var i=0; i<images.length; i++) { img.file(images[i].url, images[i].data, {base64: true}); } var content = zip.generate({type:"blob"}); // Use FileSaver.js saveAs(content, "images.zip"); } for (var i = 0; i<urls.length; i++) { convertImgToBase64URL(urls[i], function (base64Img, url) { images.push({ url: url, data: base64Img }); counter++; if (counter == urls.length) { createArchive(images); } }); } 来转义/分隔服务器端字符串,单引号应该用于分隔客户端字符串。应该是

""